У меня есть одно поле выбора, в котором отображаются параметры. Когда пользователь выбирает опцию, я использую 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);
};