2014-02-14 42 views
0

我有一個視圖模型如下格式:驗證動態淘汰賽觀察的視圖模型,視圖模型一樣,必須保存到數據庫

var usersViewModel = function() { 

this.userdata = [ 
{ 
    UserNumber: "12", 
    UserName: "Jennifer", 
    Partitions: "01", 
    Code: "2356", 
    Authority: "Standard User", 
    Keyfob: "Keyfob 03", 
    ZwaveLock: false 
}, 
{ 
    UserNumber: "13", 
    UserName: "Pinkman", 
    Partitions: "03", 
    Code: "4234", 
    Authority: "Guest", 
    Keyfob: "Keyfob 01", 
    ZwaveLock: true 
}, 
{ 
    UserNumber: "14", 
    UserName: "Nolan", 
    Partitions: "02", 
    Code: "1233", 
    Authority: "Standard User", 
    Keyfob: "Keyfob 02", 
    ZwaveLock: "false" 
}]; 
}; 
ko.applyBindings(new usersViewModel()); 

我怎樣才能做一個客戶端驗證對此有何看法?

我有這些要求:

  • Usernumber必須是用戶代碼1100
  • 之間應該只有4位。
  • 用戶名應該只允許字符。
+0

研究knockout-validation插件;它被廣泛使用,非常穩定,這裏有很多關於它的問題和答案.. – ebohlman

回答

0

使用ko validation plugin,您的需求將是滿足以下驗證觀測:

var UserDataElement = function (dataObj) { 
    dataObj.UserName = ko.observable(dataObj.UserName).extend({ 
     pattern: '^[a-zA-Z]*$' 
    }) 

    dataObj.Code = ko.observable(dataObj.Code).extend({ 
     minLength: 4 
    }) 

    dataObj.UserNumber = ko.observable(parseInt(dataObj.UserNumber)).extend({ 
     min: 1, 
     max: 100 
    }) 
    return dataObj; 
} 

要完成設立並顯示任何前期差錯:ko.validation.group(vm.userdata).showAllMessages()

全面實施見fiddle。在節約方面,​​就足夠了。

+0

我需要一個viewmodel,所以下面的功能應該可以實現 ,如下圖所示:http://jsfiddle.net/Z26U3/102/ 在編輯行時,應使用編輯的值更新視圖模型 – user3263194