Javascript 文本框事件

标签 javascript textbox

我遇到了输入文本类型(即文本框)的问题。

我在文本框上编写了 onkeyup 事件使用的函数。该行看起来像这样:

<input type='TEXT' value='abc' onkeyup='changeSomething( this );'>

但现在我面临的问题是,当用户从先前输入的值中选择值时, 当用户从下拉列表中选择任何先前输入的值时,我没有收到任何事件(编辑:我相信他在这里指的是浏览器自动完成)。

有人有解决办法吗? :)

最佳答案

使用onchange而不是 onkeyup在这种情况下

参见:http://www.w3schools.com/jsref/event_onchange.asp

例如

<input type='text' value='abc' onchange='changeSomething(this);' />

解决这个问题

编辑 两件事:
1) 可以使用箭头键和 enter/tab 以及使用鼠标来选择自动完成值。箭头键/enter.tab 触发 onkeyup 事件...但是,单击自动完成框不会触发 onclick 事件。
2) 如果内容已更改,一旦失去焦点,就会触发 onchange 事件。选择自动完成值时不会丢失焦点。

基本上,似乎没有任何方法可以合理地保证事件将按您希望的方式处理。

首先,你真的需要听每一次击键吗? 其次,关闭自动完成功能会更好吗? (例如 <input type='text' value='abc' autocomplete='off' onkeyup='changeSomething(this);' />)

关于Javascript 文本框事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1001009/

相关文章:

javascript - PagePiling.js 确定元素是否在 View 中

javascript - 如何将格式为 "YYYY-MM-DD hh:mm:ss"的日期转换为 UNIX 时间戳

c# - WPF TextBox 禁用特殊字符中断

javascript - 如何在文本框上创建 Angular Angular ?

Jquery 自动完成动态文本框问题

javascript - 如何显示文本框类型的值=日期asp.net

javascript - Node.js 列出文件中所需的所有模块

javascript - 使用在 AngularJS 中动态构建的表中的输入验证行

javascript - 同步幻灯片放映的 jQuery setInterval

c# - RichTextBox 选择部分文本