onkeyup和onfocusout在jQuery验证中不起作用

onkeyup和onfocusout在jQuery验证中不起作用,jquery,coffeescript,jquery-validate,Jquery,Coffeescript,Jquery Validate,我使用jQuery验证插件进行验证。我必须在表单上进行实时验证。 例如,如果需要一个名字,那么用户应该第一次收到所需的消息,并在开始在文本框中键入时发出 为了实现这一功能,我正在使用插件的onkeyup和onfocusout选项。 为此,我指的是谁也有同样的问题 这是我的咖啡脚本表单验证代码 defaultPageForm: (self)-> form = $("#PageForm") if form.length > 0 form.find(

我使用jQuery验证插件进行验证。我必须在表单上进行实时验证。 例如,如果需要一个名字,那么用户应该第一次收到所需的消息,并在开始在文本框中键入时发出

为了实现这一功能,我正在使用插件的
onkeyup
onfocusout
选项。 为此,我指的是谁也有同样的问题

这是我的咖啡脚本表单验证代码

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;">


因此,我如何解决这个问题。

您永远不会在
.validate()
方法中使用
.valid()
方法。请参阅
onkeyup
onfocusout
的源代码以了解如何完成

使用
this.element(element)
代替
$(element).valid()

要超越
onkeyup
onfocusout
的默认功能(“惰性验证”),请改用“渴望”验证

$('#myform').validate({
    onkeyup: function(element) {
        this.element(element);  // <- "eager validation"
    },
    onfocusout: function(element) {
        this.element(element);  // <- "eager validation"
    }
    ....
$('#myform')。验证({
onkeyup:函数(元素){

this.element(element);//什么是“工作不正常”?默认情况下,
onkeyup
onfocusout
选项已经启用,不需要在
中指定
除非你出于某种原因想超越它们。我已经更新了我的帖子,需要第一次显示消息。你不会在
.validate()
方法中使用
.valid()
方法。请参阅
onkeyup
onfocusout
的源代码。使用
此元素(元素)
而不是
$(element).valid()
。同样,没有人知道“工作不正常”是什么意思。请相应地编辑您的OP。@Sparky我已经更新了我的帖子