作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
$("#football_players").bind('input', function (ev) {
alert("I want to know what is event launcher");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<datalist id="datalist_football_players">
<option value="Maradona" />
<option value="Pele" />
<option value="Platini" />
<option value="Cruif" />
<option value="Messie" />
</datalist>
<input id="football_players" list="datalist_football_players" />
我有一个数据列表,用于对输入文本进行自动建议,我想知道何时单击了该数据列表的某个项目,由于这样的事件输入,我可以做到这一点:
HTML:
<datalist id="datalist_football_players">
<option value="Maradona" />
<option value="Pele" />
<option value="Platini" />
<option value="Cruif" />
<option value="Messie" />
</datalist>
<input id="football_players" list="datalist_football_players" />
JS:
$("#football_players").bind('input', function (ev) {
console.log("input event has been launched by click or by key press??");
});
不幸的是,按键已经启动了事件输入,我不知道事件输入是通过点击还是按键启动的
您是否知道一种方法来确定,如果是的话,还有一种方法可以知道按下了哪个键?
最佳答案
您可以通过在适当的目标上绑定(bind)适当的事件来检查事件。当一个文本框有一些类型的值然后点击完成时,也会触发退格键按下事件
所以请尝试以下 -
var eventKey=null;
$("#football_players").bind('keydown', function (ev) {
eventKey=ev.which;
});
$("#football_players").bind('input', function (ev) {
if(eventKey==null || (""==$(this).val() && eventKey==8 ))
console.log("click");
else
console.log("key pressed"+eventKey);
eventKey=null;
});
关于javascript - 数据表 : detect if event input is launched by a click on item or a Key pressed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32884238/
我是一名优秀的程序员,十分优秀!