【问题标题】:another Bug in jquery validator?jquery 验证器中的另一个错误?
【发布时间】:2009-08-19 14:23:07
【问题描述】:

我使用验证器的remote方法来检查用户名是否存在于数据库中

我的场景:

  1. 一个字段的表单(当然是用户名)
  2. 我填写了字段
  3. 它通过了验证,但我还没有发送表单
  4. 去数据库插入用户名,我填写了我还没有发送的表格
  5. 在提交 btn 时返回我的表单
  6. 瞧,它通过了验证(如果你还不明白,这里是问题)

当然我也在服务器端进行了验证,但是发送表单时remote方法的验证也会触发

附言我使用的是 1.5.5 版本,但看到这个问题仍然存在

【问题讨论】:

  • 我不明白,它通过了第 3 步的验证,为什么它不应该在第 6 步通过验证?
  • 因为我在 db 中添加了行,请参见第 4 步

标签: javascript jquery html forms validation


【解决方案1】:

如果我没看错,jQuery 没有错。

如果这不正确,请告诉我。我在想一个注册表单。

我去你的表格,输入一个用户名。 jQuery 说用户名可以使用远程验证技术。

在我点击提交之前,其他人使用相同的用户名提交了相同的表单,并获得了它。

即使我已经使用了用户名,我仍然可以提交表单。

这是一个经典场景。并发问题。现在,在我注册期间由 jQuery 验证提取的数据已过时。您需要在远程页面中针对这种情况进行调整,或者在表单提交上运行 jquery 验证。您可以在表单的提交方法中对表单调用 validate()。

【讨论】:

  • 你对场景说得对,但如果我在提交时调用 valid() 仍然通过验证
  • 听起来你的远程页面有过时的数据。如果它在插入一行后调用您的远程页面,它应该阻止您。检查远程页面上的逻辑。
猜你喜欢
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
  • 1970-01-01
  • 2018-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多