2012-08-28 66 views
0

,所以我可以做下面的代碼工作在JavaScriptjQuery驗證與CoffeeScript的

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" 

但每種不超過功能保持在咖啡被不確定的。很確定這是一些語法錯誤 - 任何人都可以幫忙嗎?

回答

0

我不知道它會解決你的問題,但嘗試定義您的對象,而不{}

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

大括號是可選的,*可選*不代表*禁止*。 –

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壓痕,壓痕用品一半的代碼的結構,所以它必須是正確的,它應該是一致的。