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();
    });
});