2013-06-25 62 views
3

我創建了一個視圖模型,並希望使用基因敲除驗證來驗證該模型。這是我的視圖模型如何驗證模型的基因敲除驗證

function SignInViewModel() { 
    var self = this; 

    self.userName = ko.observable('').extend({ 
     required: true, 
     pattern: { 
     message: 'Username must be a valid email address', 
     params: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/ 
     } 
    }); 

    self.password = ko.observable('').extend({ 
     required: true, 
     pattern: { 
     message: 'Password must be alpha numeric and 4-8 character long .', 
     params: /^(?=.*\d).{4,8}$/ 
    } 
    }); 

    self.login = function() { 
     // Want to call validate function here 
     $.post("/account/login", { "userName": self.userName(), "password": self.password() }) 
     .done(function (result) { 
      redirect(result.redirect); 
    }); 
    } 
} 

ko.validation.configure({ 
    decorateElement: false, 
    errorElementClass: "error", // class name 
    insertMessages: false, 
    grouping: { deep: true, observable: true } 
}); 

我想驗證我的模型,當我的登錄函數被調用。

回答

5

創建驗證組像

self.errors = ko.validation.group(self); 

添加計算

self.canLogin = ko.computed(function() { 
    return self.errors().length === 0; 
}); 

在視圖這個數據綁定添加到按鈕

data-bind="click: login, enable: canLogin"