我正在一个客户的网站上工作,该网站使用 3rd 方库来填充dropdown
SELECT 中的代码是:
<select border="0" class="" id="country" style="" name="country" size="1" onchange="ChangeCountryAndStateLabel(
{
'obj' : this,
'targetObj' : '#state_cus1',
'sel' : '',
'id' : 'fields_state'
}
,
{
'obj' : this,
'targetObj' : '#fields_state_region',
'template' : '<LABEL>:'
});" >
<option value="" onclick="" >Select Country</option>
<option value="38" onclick="" >Canada</option>
<option value="223" onclick="" >United States</option></select>
这将填充:
<div id="state_cus1" style="width:165px;">
<input type="text" id="fields_state" name="fields_state" value="" onchange="SetStateHid(this);"/>
</div>
与所有州(如果我选择美国)。
然后我想根据值删除条目。
选择 US 的输出将是这样的:
<div id="state_cus1" style="width:165px;">
<input type="text" id="fields_state" name="fields_state" value="" onchange="SetStateHid(this);"/>
</div>
<option value="AL" onclick="">Alabama (AL)</option>
etc etc etc...
填充后,我想根据 Value 删除一些。
所以要删除佛罗里达,我试过:
$("select > option[value*='FL']").remove();
然而,由于 JS 是按顺序运行并且不等待的事实,这将不起作用,因为它在select
填充之前运行。
我将如何仅select
在填充后才运行该功能?
编辑
也试过:
$(document).ready(function() {
$("#fields_state").on("change", function(){
$("#fields_state > option[value*='FL']").remove();
}
编辑 2
OnChange
已被删除,代码已移至.ready()
ll(document).ready(function() {
ll("#country").change(function(){
ChangeCountryAndStateLabel({
'obj' : this,
'targetObj' : '#state_cus1',
'sel' : '',
'id' : 'fields_state'
},{
'obj' : this,
'targetObj' : '#fields_state_region',
'template' : '<LABEL>'
});
ll("#fields_state > option[value*='FL']").remove();
});
此方法仍会填充select
所有选项,但不会删除 FL 条目。