jquery验证插件远程查询-错误/失败处理

标签 jquery validation timeout

我在用户个人资料编辑表单上使用 jquery 验证插件。我正在使用“远程”功能来查询我的网站并检查电子邮件的唯一性,该功能运行良好。我的问题是关于如何处理错误或失败,这似乎没有很好的记录。我想要的行为是,如果 JSON 查询失败或超时,请忘记这部分验证,允许用户提交并让服务器端验证来处理它。

我可以看到有一个错误属性,看起来您可以添加一个函数来在这种情况下运行,但是我会在那里放置什么来在超时/错误/失败的情况下关闭验证规则?

remote: {
                url: location.pathname + "/EmailUnique",
                timeout: 20000,
                data: {
                    userID: function() {
                        return $("#Form_EditProfileForm_userID").val();
                    }
                }
            }

最佳答案

是的,添加误差函数:

remote: {
    //your normal $.ajax stuff here
    ,
    error: function(jqXHR, textStatus, errorThrown) {
       //deal with the error
    }
}

所有这些参数都传递给普通的 jQuery ajax调用,因此通过指定 error 函数,您可以处理发生的任何情况。

假设您已将验证对象保存在变量 v 中,您的错误函数可能会如此简单:

$('#inputWithRemote').rules('remove','remote');.
v.pendingRequest--;

老实说,v.pendingRequest 业务是为了处理我所说的验证插件中的错误 - 当它启动 ajax 时,它会增加这个 pendingRequest 计数器请求,但没有自己的代码来处理响应中的错误。

在此处查看实际效果:http://jsfiddle.net/ryleyb/H96TD/ (请注意,我已将超时设置为 2 秒,并使用了 jsfiddle 的一些特殊 ajax 代码来强制响应需要 3 秒)。

关于jquery验证插件远程查询-错误/失败处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9085086/

相关文章:

部分 View 中的 ValidationSummary 未显示错误

validation - FuelPHP 中类似 CakePHP 的验证

android - 如何增加android中改造库的上传时间

css - 鼠标移开时下拉菜单的消失延迟 1 秒,除非返回

javascript - jQuery-在动画 div 中的图像源之间动态切换

c# - 使用 C# 函数检查空文本框

javascript - 是否可以使用 Deferred 对象在 for 循环完成后创建回调?

javascript - 搜索栏以在 React 中过滤表结果并超时

javascript - 设置事件监听器以在更改元素的背景颜色之前监听两次单击

javascript - 使用javascript捕获用户空闲