【问题标题】:jquery validation plugin remote query - error/failure handlingjquery 验证插件远程查询 - 错误/失败处理
【发布时间】:2012-02-23 11:59:06
【问题描述】:

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

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

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

【问题讨论】:

    标签: jquery validation timeout


    【解决方案1】:

    是的,添加一个错误函数:

    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 秒)。

    【讨论】:

    • 感谢您的回复,我刚刚检查了一下以实现一些东西,但我将在本周晚些时候使用它。
    • 没关系,无论哪种方式,这都是一个好问题——人们应该处理 ajax 中的错误,在这种情况下,这个插件会发生什么并不明显......
    猜你喜欢
    • 1970-01-01
    • 2013-07-23
    • 2013-07-16
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    相关资源
    最近更新 更多