2013-05-30 82 views
1

我對KockoutJS 比較陌生但是我有this working jsFiddle驗證。 但我想有一組約5個可觀察值並驗證該集合。 它是指某種嚮導,並在每一步中對該步驟中的觀察值進行驗證。視圖模型的基因敲除部分驗證

我已閱讀關於validatedObservable,但是我必須在viewModel之外爲它創建一個var,然後引用viewmodel中的observables? 我發現this as only reference並且難以理解分組和驗證敲除驗證。

這裏是我的JS代碼:

function ovm() { 
    var self = this; 
    this.delStreet = ko.observable("").extend({required: true}); 
    this.deliveryNotSameAsInvoice = ko.observable(false); 
    this.invStreet = ko.observable(''); 
    this.delCountry = ko.observable(""); 
    var invStreetCheck = ko.computed(function(){ 
     var checked = self.deliveryNotSameAsInvoice(), 
      delStreet = self.delStreet(); 
     if(!checked) 
      return self.invStreet(delStreet); 
     return self.invStreet(); 
    }); 
} 

var vm = new ovm(); 
ko.applyBindings(vm); 

$("#s1").click(function(){ 
    alert(vm.delStreet.isValid()); 
}); 

回答

1

Here's how I solved this problem for someone else

它使用來自Carl Schroed的ValidatedViewModel,並允許您選擇要應用的驗證選項 - 對於多步表單非常方便。

+0

謝謝我已經閱讀了評論,並認爲對於我的解決方案來說,集羣validatedobservable更好,但我不知道它是如何工作的。因爲我不想在視圖模型中有太多的邏輯。 –

+0

我發現Knockout對我來說有一個非常陡峭的學習曲線,所以我知道它的感覺。 我建議玩一下我創建的小提琴,看看你如何繼續:http://jsfiddle.net/79IT/aYb6t/26/ – 79IT

+0

謝謝你的jsfiddle。我有這個與validatedobservable http://jsfiddle.net/jphellemons/BkXpZ/23/但我肯定會看你的jsfiddle!謝謝! –