1
我有以下情形:淘汰賽驗證 - isValid()的始終真值變化後
function ViewModel(){
var self = this;
self.newQty = ko.observable().extend({
pattern: {
message: "Wrong!",
params: new RegExp("^[1-9][0-9]*(\\,\\d{1,2})?|0+\\,\\d{1,2}$")
}
});
self.newQty.subscribe(function() {
if(self.newQty.isValid())
doStuff();
})
}
newQty
字段綁定到一個input
元素。
如果鍵入 「123」 到input
盒,isValid()
的計算結果爲true
,並且如果I型 「ASD」 入input
框中isValid()
計算結果爲false
。
當我將「123」更改爲「123a」時,問題就體現出來了。 isValid()
仍然評估爲真。
我的問題是:有沒有辦法手動強制重新評估字段newQty
?我發現一些帖子,呼籲valueHasMutated()
,但我得到Maximum call stack size exceeded
錯誤,當我使用它。
我使用Knockout 2.3.0和最新版本的Knockout-validation插件。
謝謝!
非常感謝你。我花了很多時間找錯方向。我能說什麼,正則表達式就像我的魔術:) – marac
沒問題 - Regexpal.com是一個很好的測試這些東西的地方。 (我與該網站沒有任何關係,多年來一直使用它)。 – ach