2013-03-26 42 views
0

這是我當前的代碼不變:http://jsfiddle.net/XABtF/淘汰賽JS驗證,以現有的視圖模型

我目前使用的兩種jQuery Validation & Knockout Validation

我已經通過雙方的文檔閱讀和審判他們落實到我現有的腳本,都沒有成功運行。這裏是我試圖實現基因敲除驗證:http://jsfiddle.net/yNVeF/

我的劇本是很簡單的,我想只要把驗證兩個觀測這樣的:

self.emailAdd = ko.observable(""); 

我試圖做這樣的:

self.emailAdd = ko.observable("").extend({required: { message: 'Please supply your email address.' }}); 
+0

什麼問題?它不工作?看起來對我來說很好......假設你實際上包含了驗證插件。 – 2013-03-26 18:39:32

+0

我認爲我的問題是將驗證綁定到保存按鈕,我已經有了幾步ajax形式,而且我沒有理解將此腳本包含在提交中的語法。 – Stephen 2013-03-26 18:48:03

回答

1

放在jQuery的驗證下面我applyBindings並綁定與 '拯救' 視圖模型名稱:

$("#getAcc").validate({ submitHandler: authViewModel.save }); 
0

編輯:按照下面的評論,如果您使用的驗證插件,擴展器是其中的一部分 - 如果不是... /編輯

擴展程序沒有預先編寫 - 您需要添加您自己所需的擴展程序,如文檔中所示。

http://knockoutjs.com/documentation/extenders.html

ko.extenders.required = function(target, overrideMessage) { 
    //add some sub-observables to our observable 
    target.hasError = ko.observable(); 
    target.validationMessage = ko.observable(); 

    //define a function to do validation 
    function validate(newValue) { 
    target.hasError(newValue ? false : true); 
    target.validationMessage(newValue ? "" : overrideMessage || "This field is required"); 
    } 

    //initial validation 
    validate(target()); 

    //validate whenever the value changes 
    target.subscribe(validate); 

    //return the original observable 
    return target; 
}; 
+0

他打算使用驗證插件。擴展程序是插件的一部分... – 2013-03-26 18:37:17

+0

@JeffMercado是的,這是正確的。 – Stephen 2013-03-26 18:46:46