淘汰赛中的hasfocus事件不适用于首次点击

时间:2019-02-13 12:50:34

标签: javascript jquery knockout.js oracle-commerce-cloud

我正在使用敲除hasfocus事件来进行电话号码验证,而从输入字段验证错误中移出焦点应该会弹出,但是只有当我第一次尝试第二次单击时,它才发生 我尝试通过在函数中添加断点来对其进行调试,因此我发现错误消息已出现,但发生了某些事情,并且第一次单击时错误消息已被删除
有人可以帮忙吗?

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 个答案:

答案 0 :(得分:0)

首先,在为小部件应用绑定时,尝试为isShippingPhoneFocus赋予错误的值。也许可以解决问题。