【问题标题】:button onclick does not fire after typing text in an input-field在输入字段中输入文本后,按钮 onclick 不会触发
【发布时间】:2017-02-02 11:20:16
【问题描述】:

我做了一个简单的计算器。

用户可以在输入字段中输入一个值,然后单击“+”按钮。 焦点保持在输入字段上,因此用户可以在单击 + 后直接输入新值。鼠标位置保持在“+”按钮上,因此他可以在输入新值后再次单击。 但是,单击这次,根本不会触发任何事件。大约后。 1 秒可能再次,点击被触发。请解释一下。

注意我在使用在线计算器时遇到了同样的行为,例如http://web2.0calc.com/

html代码:

<input type='text' id=calc size=14 style='text-align:right' ></input>
<button type='button' onclick= 'Plus()'>+</button>

和脚本:

 // init:
  document.getElementById('calc').value = '' 
  document.getElementById('calc').focus()
  //
  function Plus(){
  // check input, add to total
  document.getElementById('calc').value = '' // clears input after add
  document.getElementById('calc').focus()    // keeps focus on input
   }

【问题讨论】:

  • 您是否尝试过不同的浏览器、不同的电脑,可能是通过移动设备等,以确保它在代码中,而不是插件的副作用或类似的东西?
  • 我使用的是 Firefox,但也在 IE 和 Edge 中进行了测试。我没有其他问题。我不使用插件。

标签: javascript html button input focus


【解决方案1】:

您提供的示例链接在我的机器上运行良好。您提到的1s延迟可能是由于旧浏览器,慢机器等导致的性能问题。

【讨论】:

  • 确实如此,请查看this。此外,您不需要输入结束标记,因为它是一个 void 元素
  • 我使用的是最新版本的 Firefox,并且没有遇到其他性能问题。
猜你喜欢
  • 1970-01-01
  • 2011-09-16
  • 2023-04-05
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 2014-04-02
  • 2021-10-09
  • 2018-09-23
相关资源
最近更新 更多