$("#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" />
我有一个对输入文本提供自动建议的datalist,我想知道当单击了Datalist的某一项时,我可以这样做,这要感谢这样的事件输入:
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" />
联署材料:
$("#football_players").bind('input', function (ev) {
console.log("input event has been launched by click or by key press??");
});
不幸的是,按键已经启动了事件输入,我无法知道事件输入是通过单击还是按下键启动的。
你知道确定的方法吗?如果是的话,知道哪个键被按了?
发布于 2015-10-01 09:46:13
您可以通过在适当的目标上绑定适当的事件来检查事件。当一个文本框有一些类型化的值,然后单击完成,那么也会触发一个退空间按键事件。
所以试着遵循-
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;
});
LIVE http://jsfiddle.net/mailmerohit5/q9dy5xL0/
https://stackoverflow.com/questions/32884238
复制相似问题