2014-10-17 35 views
0

我正在嘗試使用this jQuery validation plugin設置表單驗證。我的計劃是使用初始配置的驗證對象加載頁面,並在需要時將其配置重置爲我的需要。但它沒有按預期工作。初始化後,它不接受新的配置對象。這裏是我的代碼:爲什麼初始化後jQuery驗證插件配置重寫失效?

<form id="testform"> 
    <input type="text" name="myField" value="" id="myFieldID" class="myFieldClass" placeholder="Type something..." title="Please fill myField" /> 
    <input type="submit" class="validate" name="submit" value="Test"/> 
</form> 

<script> 
var validator = $('#testform').validate({debug: true}); 

validator = $('#testform').validate({ 
    debug: false, 
    rules: { 
     myField : "required" 
    }, 
    messages: { 
     myField : "Hello Other!" 
    } 
}); 
</script> 

初始化後爲之傾倒不斷顯示debug: true驗證對象,並沒有規律,也沒有消息時。 Here is a jsfiddle爲此。 我檢查了作者的文檔上下搜索這個論壇,但無法找到滿意的答案。

有人在這裏可以教我/我們爲什麼這種方式不起作用,請問如何以正確的方式做到這一點?

回答

0

看起來它的設計只能配置一次。它有一個rules()方法來改變規則,如果這只是你想要的。但是,它在jQuery數據庫中存儲對驗證器的引用。我們可以用$('#testform').data('validator', null);清除該參考。這是欺騙腳本再次運行安裝程序,以便測試它以確保它不會做任何事情。

http://jsfiddle.net/bva07bk1/

+0

規則參數不是我需要重寫的唯一參數。大多數情況下,當改變規則時,消息必須改變,因爲它們屬於一起。如果您的解決方案 - 順便說一句 - 是讓我管理自己的方法的唯一方法,在需要時可以重新配置某種全球/類似主機的驗證程序,因爲它已被品牌所取代似乎是錯誤的每次我需要更改配置的新實例。這就是我得到你的方式。如果我錯了,請糾正我的錯誤!你看到一種更簡單,更有效的方式來實現我想要的嗎? – user1014412 2014-10-17 15:43:47

+0

主驗證器的好處是什麼?也許你可以採取另一種方法。 – 2014-10-17 16:33:51

+0

我有一個基本配置對象,它存儲在一個單獨的JavaScript文件中。在我加載驗證腳本文件在我的index.php後,我也加載validator.config並從它創建一個驗證器實例。現在,每當我通過AJAX加載表單時,我必須根據表單域更新驗證器設置。收到的表單包含驗證器更新的小腳本塊。我不想在我通過AJAX發送的每個表單模板中加載驗證器和配置。我寧願做一次,並更新它以適應新的要求。這是計劃......至少。有什麼更好的想法 – user1014412 2014-10-17 17:22:03

相關問題