如果請求失敗,我正在嘗試更改復選框的狀態。但它不會從failjquery 的 ajax 函式內部改變它:
$('.checkbox').on('change', function () {
let checked = $(this).is(':checked');
var jqxhr = $.ajax({
// ajax parameters
})
.done(function () {
})
.fail(function () {
$(this).prop('checked', !checked);
})
});
當我$(this).prop('checked', !checked);在外部fail和內部使用時on('change'..,它可以作業。
我什至嘗試記錄函式的內容$(this)和checked范圍,fail看起來它確實獲得了復選框元素和值
uj5u.com熱心網友回復:
您必須使用 $("#checkbox") 而不是 $(this)
"this" 不能在 "fail" 中作業,因為它參考 ajax 函式而不是更改的元素
$('#checkbox').on('change', function () {
let checked = $(this).is(':checked');
var jqxhr = $.ajax({
// ajax parameters
})
.done(function () {
})
.fail(function () {
$("#checkbox").prop('checked', !checked);
})
});
您還可以使用“this”設定變數并在“fail”中重用它:
$('.checkbox').on('change', function () {
let checked = $(this).is(':checked');
let _this = this;
var jqxhr = $.ajax({
// ajax parameters
})
.done(function () {
})
.fail(function () {
$(_this).prop('checked', !checked);
})
});
uj5u.com熱心網友回復:
嘗試這樣的事情
$('.checkbox').on('change', function () {
let self = $(this);
let checked = $(this).is(':checked');
var jqxhr = $.ajax({
// ajax parameters
})
.done(function () {
})
.fail(function () {
self.prop('checked', !checked);
})
});
因為在.fail()部分背景關系$(this)發生變化時,我們不能使用它來取消選中復選框
所以我將背景關系保存$(this)到變數self之前,當背景關系$(this)與復選框一起使用時,然后在.fail部分中使用它
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/507566.html
標籤:javascript jQuery
