Javascript 修改第三方JS发送的数据
我正在一个客户的网站上工作,该网站使用第三方库填充下拉列表。选择中的代码是:Javascript 修改第三方JS发送的数据,javascript,jquery,Javascript,Jquery,我正在一个客户的网站上工作,该网站使用第三方库填充下拉列表。选择中的代码是: <select border="0" class="" id="country" style="" name="country" size="1" onchange="ChangeCountryAndStateLabel( { 'obj' : this,
<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>
但是,由于JS是按顺序运行且不等待的,因此在填充select之前,它不会运行
我将如何仅在填充select之后运行该函数
编辑
还尝试:
$(document).ready(function() {
$("#fields_state").on("change", function(){
$("#fields_state > option[value*='FL']").remove();
}
编辑2
OnChange已被删除,代码已移动到.ready
此方法仍会填充“选择全部选项”,但不会删除FL条目。放置此选项:
$("select > option[value*='FL']").remove();
其中:
$("#country").on("change", function(){
$("#fields_state > option[value*='FL']").remove();
}
仅当更改选择时才会删除。把它放进你的JS里,你就会变成金色的
编辑
最好的解决方案是一起删除onchange。然后将代码放入JS中,如下所示:
$(document).ready(function() {
$("#country").on("change", function(){
ChangeCountryAndStateLabel({
'obj' : this,
'targetObj' : '#state_cus1',
'sel' : '',
'id' : 'fields_state'
},{
'obj' : this,
'targetObj' : '#fields_state_region',
'template' : '<LABEL>'
});
$("#fields_state > option[value*='FL']").remove();
});
});
将最后一个框中的代码添加到semi和quote之间;第一个框代码的onchange属性中的X。别忘了用牙签剔出你的内心格言$字段状态>选项[值*='FL']。是否删除;>?是的,但是没有被打断的引号:“fields\u state>option[value*=\'FL\'”@dandavis使用$'fields\u state>option[value*=\'FL\'”。删除;>不会从选项列表中删除FL。也许我把它放错地方了?有更合适的解决方案。您应该将Javascript与HTML分开。这是不允许的,添加在.ready下,但在更改后不会删除该选项。如果有帮助,则选择ID为fields\u state。请参阅编辑以了解我所更改的内容。删除OnChange并在中使用您的代码。就绪不起作用,我得到未捕获的语法错误:意外标记}您得到的错误是因为我在某一点错过了}。我编辑了我的答案来纠正这个问题。它现在应该可以正常工作了。我仍然收到一个错误,仍然是相同的}错误。但是,编辑2中的代码不会删除FL值。为什么用ll而不是$?这里:lldocument.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 > option[value*='FL']").remove();
$("#country").on("change", function(){
$("#fields_state > option[value*='FL']").remove();
}
$(document).ready(function() {
$("#country").on("change", function(){
ChangeCountryAndStateLabel({
'obj' : this,
'targetObj' : '#state_cus1',
'sel' : '',
'id' : 'fields_state'
},{
'obj' : this,
'targetObj' : '#fields_state_region',
'template' : '<LABEL>'
});
$("#fields_state > option[value*='FL']").remove();
});
});