2015-05-04 55 views
0

我正在使用一個新的插件來驗證名爲Verify.js的表單域,一切都一直很好,直到我開始嘗試創建自己的自定義驗證規則。自定義Verify.js驗證規則不適用

這裏是鏈接到他們的文檔,它解釋瞭如何創建自定義的驗證:http://verifyjs.com/#custom-rules

更有幫助,這是例如通過插件作者上的jsfiddle貼:http://jsfiddle.net/jpillora/R4t84/1/我在這裏複製的代碼格式幾乎精確,但它仍然不起作用。

現在,我試圖讓表單不提交,如果用戶沒有選擇輸入字段#YesExact。這是一個非常簡單的表單驗證,只是試圖讓這個工作,所以我得到Verify.js

編寫自定義的驗證規則的竅門表單域的HTML標記是這樣的:

p class="regular-content option-label">Do you know the exact size of your order?</p> 
    <input name="YesExact" id="YesExact" data-validate="checkExact" type="button" class="btn btn-tca padding-button" value="Yes"> 

我寫的JavaScript具有自定義的驗證規則是這樣寫的:

// custom form validation 
$.verify.addRules({ 
    checkExact: function (r) { 
     if ($('#YesExact').val() === "") { 
      $('#YesExact').notify("Please tell us you know the exact amount!", "error"); 
      return "Please tell us you know the exact amount!" false; 
     } 
     return true; 
    } 
}); 

這看起來像它應該完全正常工作,我跟着例子非常密切。不過,我有一個重大線索,爲什麼它不工作... JavaScript控制檯說:

verify.js: Missing rule: checkExact

所以我怎麼解決這一問題? Verify.js可以找到規則?

該網頁是HERE如果你想自己檢查一下。

在此先感謝您的幫助。

回答

1

你有一個語法錯誤:

return "Please tell us you know the exact amount!" false; 

變化return false;

你也應該確保只將其值設置時點擊,以及「否」按鈕,然後檢查如果兩者都設置了,否則你的驗證將始終返回true。雖然我認爲更好的方法是讓他們的點擊觸發設置隱藏字段爲真或假,您可以輕鬆地將其作爲布爾服務器端。

0

我解決了這個問題,方法是在關閉body標籤之前在文件底部加入verify.js腳本,假設你的jquery文件也包含在這些語句之前,並且假設輸入正確地包含在<form>標籤

<script src="js/Verfify.js" type="text/javascript"></script> <script src="../yourFolder/yourJavascriptFileWithVerifyRules.js"> </body>

而且你的回報說法是錯誤的

return "Please tell us you know the exact amount!" false;

應該是

return false;