javascript - Ajax 错误检查 - 如果 AJAX 请求失败,如何防止内容更改?

标签 javascript php jquery ajax

我不太确定如何清楚地表达我的问题 --

我在一个复选框上有一个简单的 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>

非常感谢任何帮助!

最佳答案

如果响应出现错误,您只需使用

选中取消选中复选框即可

$('#favorite').attr('已检查', true);//检查它 $('#favorite').attr('已检查', false);//取消选中它

关于javascript - Ajax 错误检查 - 如果 AJAX 请求失败,如何防止内容更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29262975/

相关文章:

带 HREF 的 PHP While 循环

php - 为什么 MySQL 不接受这个值,或者为什么 php 不能正确传输它?

php - SQL语法错误 'LIMIT 0, 10'

javascript - 如何从服务每秒发送 $http.get 请求

javascript - 添加元素时应用过渡,而不是删除元素

javascript - jQuery Accordion DOM

javascript - AngularJS:自定义 $anchorScroll 提供程序执行

jquery - 侧边栏过渡

javascript - 使用 javascript 禁用按钮

javascript - 为什么 jslint 提示我的空间?