javascript - 当输入仍然集中时,jquery 代码不执行

标签 javascript jquery html

默认情况下,我的表单的提交按钮是禁用的,当输入的电话号码正确时(即:当下面的 div 显示:“OK”)时,它会启用。

所以我这样写:

  $(document).on('change', 'input', function() {
    if ( document.getElementById('phone-number-validator').innerText === 'OK') {
      $('.btn-default').prop('disabled', false);
    }
  });

事实是,只有在电话号码输入未聚焦时才会启用该按钮。所以问题是:如果用户在输入电话号码后按“enter”,或者在输入仍处于焦点状态时单击提交按钮,则不会提交表单,因为提交按钮仍处于禁用状态。

要启用该按钮,用户必须至少在输入框外单击一次。

我想更改我的代码,以便即使焦点仍在电话号码输入上,用户也可以提交表单。有办法吗?

最佳答案

change 事件只会在 focus out 之后触发,但您可以使用 keyup 或 keydown 事件处理程序来验证和启用提交按钮

 $(document).on('keyup', 'input', function() {
    if ( $('#phone-number-validator').text() === 'OK') {
      $('.btn-default').removeProp('disabled');
    }
  });

关于javascript - 当输入仍然集中时,jquery 代码不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51929007/

相关文章:

javascript - Twitter Bootstrap 3 响应式菜单不起作用

javascript - 在 jquery ajax 加载的内容上操作 css

javascript - Facebook 应用程序未请求管理页面的权限

javascript - 从商店的前端 Shopify javascript api

jquery - 根据单击的链接使用 jquery 编辑 div

javascript - 如何定义图像 'Save As' 大小?

javascript - Ext js网格移除选择模型

javascript - Safari 中的 FadeIn javascript 函数无法正常工作,但 FadeOut 可以正常工作 :(

javascript - 使用 jQuery 允许打开 Accordion 部分的最大数量

iphone - 响应式网站,在 iPhone 上没有响应