2012-01-31 81 views
4

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

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

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

回答

3

对了,补充误差函数:

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

+0

感谢您的回复,我只是检查回来执行一些事情,但我会在本周晚些时候使用它。 – user1181064 2012-02-20 21:02:33

+1

没关系,无论哪种方式都是一个很好的问题 - 人们应该处理ajax中的错误,并且在这种情况下使用此插件会发生什么并不明显...... – Ryley 2012-02-20 21:38:18