Jquery 验证不适用于 Document.ready()

Posted

技术标签:

【中文标题】Jquery 验证不适用于 Document.ready()【英文标题】:Jquery validation not working on Document.ready() 【发布时间】:2012-01-12 02:34:55 【问题描述】:

我使用ketchup plugin 进行表单验证。我有一组作为原型的 div 中包含的输入元素。也就是说,当按下“添加”按钮时,所述 div 被克隆并附加到父 div 中。例如,如果我按下它,比如说,5 次所述原型 div 将被克隆 5 次并附加到父 div。现在,由于我不希望验证原型 div 中的元素,因此在将克隆的 div 附加到父 div 之前,我将在输入元素中添加“数据验证”属性。问题是,除了添加按钮之外,克隆函数还在 jquery 的 document.ready() 函数中调用,它对服务器进行 AJAX 调用,获取一些数据并在 parent 中附加指定数量的 div。在 document.ready 中也调用了 validation.ketchup 函数(验证函数),我的验证由于某种原因无法在这些 div 上运行。但是如果我放置一个“检查”按钮并在其点击事件上调用验证函数,验证工作......但由于验证不适用于 document.ready,消息不会显示在模糊事件上,这就是我想要的...有人可以给我任何想法吗?

【问题讨论】:

【参考方案1】:

表单验证是一个应该在用户与表单交互时触发的事件,因此应该只在诸如表单提交、文本框更改、单选点击等事件时触发

简单的验证在$(document).ready 上不起作用,因为没有什么可以验证的。因此,将您的验证检查放入某种函数中,或者至少仅在用户驱动事件时调用它。

【讨论】:

您好,感谢您的回复。我确实理解应该在事件中调用验证函数。但这才是真正的麻烦。通过将验证函数放在 $(document).ready() 中,验证适用于我所有具有 data-validation 属性的元素的模糊事件。你能告诉我怎样才能达到同样的结果吗? 事实证明,我只需要在正确的事件中调用该函数。在这里,我在 body 的 onLoad 事件中做到了这一点......现在它工作正常......谢谢!

以上是关于Jquery 验证不适用于 Document.ready()的主要内容,如果未能解决你的问题,请参考以下文章

Jquery 验证不适用于登台和生产系统

验证系统 它适用于某些输入,但不适用于其他输入 使用 jQuery

jQuery 表单验证器不适用于 html

Jquery 验证不适用于 Document.ready()

最小最大价格范围验证不适用于 jquery.validate.js

Jquery 验证不适用于 datepicker 的输入