我想寫我的輸入字段值的驗證。 如果該值是錯誤的,那麼我想設置一個默認值。 不幸的是,它正在檢查它,設置默認值,然後設置錯誤的值。 我正在嘗試使用擴展驗證。在我嘗試使用「訂閱」之前,卻又沒有成功。這裏是我的例子場景驗證輸入值,如果它是錯誤的比設置默認
在輸入開始我有0.56 我改變它爲0.95。因此,擴展程序檢查0.95是否超過0.85,並將值更改爲0.85。不幸的是在我的情況下仍然是0.95。我增加了一些警告後目標(0.85)我可以看到價值正在改變爲0.85,但之後又是0.95。
任何想法我做錯了什麼?
這裏是我的代碼
ko.extenders.checkInput = function (target) {
var result = ko.computed({
read: target,
write: function (newValue) {
if (newValue > 0.85) {
target(0.85);
}
});
//return the new computed observable
result(target());
return result;
};
self.inputValue = ko.observable(0.56).extend({ checkInput: '' });
除從丟失的括號中,這似乎工作正常,請參閱http://jsfiddle.net/a75oqxtw/ – sroes 2014-09-03 09:38:58
如果它的寫就像是工作。不幸的是,當我在前端輸入字段時,它不起作用 – Kosmonaft 2014-09-03 10:05:05
您可以嘗試使用http://jsfiddle.net重現您的情況。我想也許你沒有在輸入中使用擴展的觀察值。 – sroes 2014-09-03 10:10:43