Событие hasfocus в нокауте не работает при первом нажатии
Я использую нокаут hasfocus
событие для проверки номера телефона, при этом всплывающее окно должно отображать ошибку при фокусировке из поля ввода, но это происходит только тогда, когда я нажимаю на него во второй раз, если я пытаюсь в первый раз, но ничего не происходит, я пытался отладить его с добавлением точки останова в функцию, так что я понимаю, что появляется сообщение об ошибке MSG, но что-то происходит, и сообщение об ошибке удаляется для первого клика
Может кто-нибудь помочь, пожалуйста?
widget.isShippingPhoneFocus.subscribe(function (newValue) {
if (!newValue) {
var phoneValid = widget.validatePhone();
if (!phoneValid) {
widget.isPhoneValid(false);
$('#CC-checkoutAddressBook-sphone-error').text(widget.phoneErrorMsg());
$('#CC-checkoutAddressBook-sphone-error').show();
} else {
$('#CC-checkoutAddressBook-sphone-error').hide();
widget.isPhoneValid(true);
}
}
});
<input type="tel" class="form-control" name="sPhone" id="CC-checkoutAddressBook-sphone" data-bind="validatableValue: phoneNumber, widgetLocaleText:{value:'phoneNumberText',attr:'placeholder'}, valueUpdate:'keyup', hasFocus: $parent.isShippingPhoneFocus">
1 ответ
В начале, пока вы применяете привязки для виджета, попробуйте задать ложное значение для isShippingPhoneFocus. Это может решить проблему.