У меня есть следующий сценарий:Нокаут проверки - 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
, и если я типа «ASD» в input
коробке isValid()
вычисляет false
.
Проблема проявляется, когда я меняю «123» на «123a». isValid()
по-прежнему оценивает значение true.
Мой вопрос: есть ли способ ручной переосмысления силы поля newQty
? Я нашел несколько сообщений о том, что sugest вызывает valueHasMutated()
, но я получаю ошибку Maximum call stack size exceeded
, когда я ее использую.
Я использую Knockout 2.3.0 и последнюю версию плагина проверки нокаута.
Спасибо!
Большое спасибо. Я провел много времени, глядя в неправильном направлении. Что я могу сказать, Regex походит на волшебство для меня :) – marac
Нет проблем - Regexpal.com - хорошее место, чтобы проверить эти вещи. (У меня нет связи с сайтом, я просто использовал его много лет). – ach