Jquery Validate with Coffeescript

Jquery Validate with Coffeescript

本文关键字:Coffeescript with Validate Jquery      更新时间:2023-09-26

所以我可以在javascript 中使用以下代码

validateSearchForm:=>
    $(@el).find("#form").validate({
      rules:{
        startDateInputBox:{
          dateISO:true,
          endDateInputBox:{lessThan : "#licenseStart"}
        },
        endDateInputBox:{
          dateISO:true
        }
        searchPurposeBox:"required"

      }

      });
  $.validator.addMethod "lessThan",(value,element)-> 
    //do some stuff
  ,"some comment"

但lessThan函数在coffee中一直没有定义。很确定这是语法错误-有人能帮忙吗?

我不确定它是否能解决您的问题,但请尝试在没有{}:的情况下定义您的对象

rules:
    startDateInputBox:
        dateISO: true,
        endDateInputBox:
             lessThan: "#licenseStart"
    endDateInputBox:
         dateISO: true
    searchPurposeBox: "required"

您的代码结构如下:

validateSearchForm: =>
    $(@el).find('#form').validate({ ... })
    $.validator.addMethod "lessThan", (value, element) -> 
        #...
    , "some comment"

因此,您在尝试验证表单之后调用$.validator.addMethod。您应该在尝试使用它们之前添加所有额外的验证方法,并且可能应该在验证表单的方法之外添加它们。更像这样的东西:

# Somewhere in your global application set up...
$.validator.addMethod "lessThan", (value, element) -> 
    #...
, "some comment"
# And then elsewhere...
class Whatever
    #...
    validateSearchForm: =>
        $(@el).find('#form').validate({ ... })

您必须非常注意CoffeeScript中的缩进,缩进提供了代码结构的一半,因此它必须是正确的,并且应该是一致的。