Использование Jquery и XMLHttpRequest для предварительного выбора параметров из нескольких полей выбора - PullRequest
0 голосов
/ 25 февраля 2011

У меня есть одно поле выбора, в котором отображаются параметры. Когда пользователь выбирает опцию, я использую XMLHttpRequest, чтобы выбрать другое поле выбора, основанное на значении первого выбора. Это прекрасно работает, когда пользователь делает это, чтобы выбрать параметры. Когда пользователь теперь хочет отредактировать это, я использую Jquery, чтобы предварительно выбрать каждый элемент из полей выбора и автоматически произвести его ранее выбранные выборы. Существует максимум 5 полей выбора. Я использую 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);         
};

1 Ответ

0 голосов
/ 10 марта 2011

Изменение функции здесь: setTimeout(catpop1(selectedcategory),1000,true); на catpop1(selectedcategory); без вызова функции упростило все и удалило ошибку.

это также не имело ничего общего с XMLHttpRequest ... хорошо отметить, что именно эта строка выдает ошибку - неудивительно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...