0

所以我可以使以下代码在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 函数在咖啡中一直未定义。很确定这是一些语法错误 - 任何人都可以帮忙吗?

4

2 回答 2

0

你的代码结构是这样的:

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 中的缩进,缩进提供了代码结构的一半,因此它必须是正确的并且应该是一致的。

于 2012-08-28T21:50:18.973 回答
0

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

rules:
    startDateInputBox:
        dateISO: true,
        endDateInputBox:
             lessThan: "#licenseStart"
    endDateInputBox:
         dateISO: true
    searchPurposeBox: "required"
于 2012-08-28T21:24:51.383 回答