我不知道如何清楚地说出我的问题——
我在一个复选框上得到了一个简单的ajax请求,它将一个值发送到数据库。
如果ajax请求由于任何原因失败,我希望不更改复选框。它目前的工作方式是,如果请求失败,我第一次点击它时它不会改变。但如果我再次点击,即使请求仍然失败,它也会改变。
这是代码:
<script type="text/javascript">
$(document).ready(function(){
$("#favorite").change(function() {
if($(this).is(":checked")) {
$.ajax({
url: 'favorite.php',
type: 'POST',
data: { file_id:$(this).attr("name"), strState:"1" },
success: function() { // this happens after we get results
$("#favWrap").empty();
$("#favWrap").html("<input id='favorite' name='165' type='checkbox' checked/><label></label>");
},
error:function(){
$("#favWrap").empty();
$("#favWrap").html("<input id='favorite' name='165' type='checkbox' /><label></label>")
}
});
} else {
$.ajax({
url: 'favorite.php',
type: 'POST',
data: { file_id:$(this).attr("name"), strState:"0" },
success: function() { // this happens after we get results
$("#favWrap").empty();
$("#favWrap").html("<input id='favorite' name='165' type='checkbox' /><label></label>");
},
error:function(){
$("#favWrap").empty();
$("#favWrap").html("<input id='favorite' name='165' type='checkbox' checked/><label></label>")
}
});
}
});
});
</script>
非常感谢您的帮助!
如果响应中出现错误,则可以使用仅check
或uncheck
复选框
$('#favorite').attr('checked', true); // Checks it
$('#favorite').attr('checked', false); // Unchecks it