當用戶點擊單選按鈕時,我的程序會執行ajax調用。成功後,包含單選按鈕的表格單元格的背景顏色將更改,以讓用戶知道他們的選擇已發佈到數據庫。當用戶超出ajax時該怎麼辦
問題是有時背景不會改變。我陷入錯誤,所以我不認爲這是由於錯誤。我想知道用戶是否超過成功回調。
var setup = {};
setup.url = 'Gateway.cfc';
setup.type= 'POST'
setup.dataType='json';
$.ajaxSetup(setup);
var settings = {};
settings.data = {};
settings.data.method = 'Save';
settings.data.AssignmentID = $('input[name=AssignmentID]').val();
settings.error = function(xhr, ajaxOptions, thrownError) {
$('#msgErr').text(thrownError);
};
settings.success = function(result) {
$('#msg').empty();
$('#msgErr').empty();
if (result.RTN) { // uppercase RTN
$('#' + settings.data.AnswerID).addClass('answer');
} else {
$('#' + settings.data.AnswerID).next().append('<span class="err"> ' + result.MSG + '</span>');
}
}
$('input').filter(':radio').change(function() {
var myName = $(this).attr('name');
$('input[name=' + myName + ']').closest('td').removeClass('answer');
settings.data.AnswerID = $(this).val();
$.ajax(settings);
});
我認爲這可能是你重複使用'settings'對象作爲全局結構的問題。你在'.change'函數中重置了ID,但是傳遞了相同的設置對象,所以你可能會在那裏發生衝突。你有沒有嘗試複製設置對象,並將對象的副本傳遞給你的'ajax()'調用,而不是重用全局變量? –
我認爲你的意思是:var obj = {}; $ .extend(obj,settings); $阿賈克斯(OBJ); –
或更好:var obj = $ .extend(true,{},settings); $。ajax(obj); –