使用Jquery和XMLHttpRequest从多个选择框中预选选项

使用Jquery和XMLHttpRequest从多个选择框中预选选项,jquery,select,xmlhttprequest,Jquery,Select,Xmlhttprequest,我有一个显示选项的选择框。当用户选择一个选项时,我使用XMLHttpRequest根据第一个select的值获取另一个selct框。 当用户选择选项时,这种方法很有效。 当用户现在想要编辑它时,我使用Jquery从选择框中预选每个项目,并自动生成他以前选择的选项。 最多有5个选择框。 Im使用setTimeout运行下一个“选择值”功能 该脚本在我的浏览器中的Chrome中运行良好,但在其他浏览器中无法正常运行 这是我的密码: function oc(a) { var o =

我有一个显示选项的选择框。当用户选择一个选项时,我使用XMLHttpRequest根据第一个select的值获取另一个selct框。 当用户选择选项时,这种方法很有效。 当用户现在想要编辑它时,我使用Jquery从选择框中预选每个项目,并自动生成他以前选择的选项。 最多有5个选择框。 Im使用setTimeout运行下一个“选择值”功能

该脚本在我的浏览器中的Chrome中运行良好,但在其他浏览器中无法正常运行

这是我的密码:

function oc(a)
    {
      var o = {};
      for(var i=0;i<a.length;i++)
      {
        o[a[i]]='';
      }
      return o;
    }

    var allcats =  new Array(<? echo substr($catarr, 0, -1); ?>);

    $("#catchoice1 option").each(function() {
        var name = $(this).val();
        if( name in oc(allcats) ) {
        var selectedcategory = name;    
        setTimeout(catpop1(selectedcategory),1000,true); /// getting a script error on this line in IE.
        setTimeout(catpop2,1000,true);
        $("#catschosen").attr('disabled', false);
        $("#catschosen").attr('checked', true);
        $("#Tags3").attr('disabled',false);         
        }
    });



function catpop1(name) { $("#catchoice1 option[value="+name+"]").attr('selected', 'selected').change(); }; 
function catpop2() { 
$("#catchoice2 option").each(function() {
        var name = $(this).val();
        if( name in oc(allcats) ) {
        var selectedcategory = name; 
        $("#catchoice2 option[value="+name+"]").attr('selected', 'selected').change();      
        }
    }); 
    setTimeout(catpop3,1000,true);
    $("#catschosen").attr('checked', true);
    $("#Tags3").attr('disabled',false);         
};
功能oc(a)
{
var o={};

对于(var i=0;i在此处更改函数:
setTimeout(catpop1(selectedcategory),1000,true);
只需
catpop1(selectedcategory);
无需调用函数即可简化整个过程并消除错误

这与XMLHttpRequest也没有任何关系。值得注意的是,这一行抛出了一个错误——难怪