【发布时间】:2014-09-11 20:54:31
【问题描述】:
我正在使用 jQuery Validate 插件进行验证。我必须对表单进行实时验证。 例如,如果需要名字,那么用户应该第一次收到所需的消息,并在他开始在文本框中输入时离开。
为了实现这个功能,我在插件的onkeyup 和onfocusout 选项上使用。
为此,我推荐 this link 有同样问题的人。
这是我的 coffeescript 表单验证代码
defaultPageForm: (self)->
form = $("#PageForm")
if form.length > 0
form.find('textarea').on 'click', -> $(@).valid()
form.find('input').on 'click', -> $(@).valid()
form.validate
ignore: ".ignore"
rules:
"view[name]":
required: true
NameWordCount: [3]
"view[comment]":
required: true
CommentWordCount: [5]
accept_terms: "required"
messages:
"view[comment]": "Please add comment"
errorElement: "span"
errorClass: "error_msg wide "
errorPlacement: (error, element) ->
element.siblings(".view_form_error_msg").remove()
error.appendTo element.closest(".controls")
return
###### Real time validation code #############
onkeyup: (element) ->
$(element).valid()
return
onfocusout: (element) ->
$(element).valid()
return
submitHandler: (form) ->
self._setupData()
self._submitForm(form)
off
return
但它不能正常工作。例如,出于测试目的,我在onkeyup 下添加了警报消息,但没有弹出任何内容,也没有应用实时验证。
有什么我想念的吗? 这是我的html
<input type="text" value="as as" size="50" placeholder="Full Name" name="view[name]" id="customerName" class="string required wide" style="font-size: 20.4572px; line-height: 49px;">
那么我该如何解决这个问题。
【问题讨论】:
-
"not working fine" 究竟是什么意思?
onkeyup和onfocusout选项已默认启用,无需在.validate()中指定,除非您出于某种原因想要覆盖它们。 -
我已经更新了我的帖子,我需要第一次显示消息。
-
您不会在
.validate()方法中使用.valid()方法。参考onkeyup和onfocusout的源码。使用this.element(element)而不是$(element).valid()。 -
再说一次,没有人知道“无法正常工作” 应该是什么意思。请相应地编辑您的 OP。
-
@Sparky 我更新了我的帖子
标签: jquery coffeescript jquery-validate