Мы создаем веб-приложение, и оно использует jquery ajax и jsp на тегах «select». Ajax-запрос работает во всех браузерах, за исключением, конечно, пресловутого семейства IE. Обычно, если я нажимаю на тег «select», он должен динамически заполнять теги «select» в зависимости от выбранной опции. Но в IE эта функция работает в первый раз, а затем перестает работать во второй раз. Затем, когда я нажимаю еще один тег «select» в третий раз, все работает нормально. Это тот второй раз, который меня беспокоит.JQuery ajax не работает так, как должно быть в IE
Вот код JQuery Ajax, и он применяется ко всем OnChange событий все «выбрать» теги:
function updateAvailableAttributes() {
var form = document.forms["orderDefinition"];
form.elements["formChangeRequest"].value = "true";
$.ajax({
type: "POST",
cache: false,
dataType: "html",
url: "ajax/possibleValues.html",
data: $("form#orderDefinition").serialize(),
success: function(response){
$('#usercontent .sleeve .toprow').html(response);
//alert("Ajax is working!");
applyValidation();
radioButtonHighlightSelection();
},
error: function(response, ioArgs, err) {
if (response.status == 601) {
sessionTimedOut();
}
}
});
// Display a "please wait" message
$("#waitingMsgOverlay, #waitingMsgBox, #waitingMsg, #waitingMsgParag").ajaxStart(function(e){
var map = document.getElementById("OrderMap");
map.disableApplication();
$(this).show();
}).ajaxStop(function(e){
var map = document.getElementById("OrderMap");
map.enableApplication();
$(this).hide();
$("#toolpanel").height($("#orderMap").height());
});
}
Пожалуйста, мне советы по этому вопросу, это становится раздражающим.
Вот 'radiaButtonHighlightSelection()' Код:
function radioButtonHighlightSelection()
{
var radioBtnCollection = $("#orderDefinition input:radio");
var radioBtnCheckedCollection = $("#orderDefinition input:radio:checked");
var checkBoxCollection = $(".fixedPricedAreasHolder input:checkbox");
var checkBoxCheckedCollection = $(".fixedPricedAreasHolder input:checkbox:checked");
radioBtnCollection.each(function(i, elemRd)
{
if(elemRd.checked)
{
$(this).parent().addClass("selectedRadioBg");
$(this).parent().next(".fixedPricedAreasHolder").addClass("selectedCheckboxBg");
}
else
{
$(this).parent().removeClass("selectedRadioBg");
}
checkBoxCollection.each(function(i, cb)
{
if(cb.checked)
{
if($("#orderDefinition input:radio:eq(0)")[0].checked){
$("#orderDefinition input:radio:eq(0)").removeAttr("checked");
$(this).parent().parent().prev().find("input:radio").attr({"checked": "checked"});
$(elemRd).parent().removeClass("selectedRadioBg");
$(this).parent().parent().prev().addClass("selectedRadioBg");
$(this).parent().parent().addClass("selectedCheckboxBg");
}
else if(cb.checked == false){
$("#orderDefinition input:radio:eq(0)").attr({checked: "checked"});
$("#orderDefinition input:radio:eq(1)").attr({checked: "checked"});
}
}
});
});
}
Спасибо заранее.
Я добавил код radioButtonHighlightSelection() в свой вопрос по запросу, но я не уверен, что это преступник. – Shaoz