我注意到,如果用户选择之前保存的条目,JQuery中的keyUp
不会读取输入值。键盘无法读取输入值
例如下图中......
如果用户挑选先前保存的条目,然后我使用keyUp功能只会上面的图片中读取多达13
,而不是[email protected]
。 keyUp
只有在用户手动输入电子邮件的每个字符时才有效。我该如何解决这个问题?
我注意到,如果用户选择之前保存的条目,JQuery中的keyUp
不会读取输入值。键盘无法读取输入值
例如下图中......
如果用户挑选先前保存的条目,然后我使用keyUp功能只会上面的图片中读取多达13
,而不是[email protected]
。 keyUp
只有在用户手动输入电子邮件的每个字符时才有效。我该如何解决这个问题?
你可以结合使用这一点。
$('#text').on('change keyup mousedown',function(){
alert("1");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" id="text"/>
我不确定你可以单独使用keyup来解决问题......但是,您可以使用事件组合并将它们绑定到控件。
下面是一个例子。如果您认为适合您的特定情况,请更新。
var counter = 0;
$("#myId").bind("keyup change paste input propertychange mousedown", function(event) {
counter++;
$("p").text(counter + ": " + event.type);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="myId">
<p></p>
问题在于变化只会在模糊情况下发生。 –
你也可以使用'input'事件。 https://developer.mozilla.org/en-US/docs/Web/Events/input – idan
可以绑定/监听input
事件,所有主要的浏览器都有某种程度的支持对他们的支持版本。实施例与jquery:
$("#search").on("input", function() {
console.log($(this).val());
});
将触发对发生的变化对目标输入元件,而输入仍处于焦点(因此不是输入失去焦点后,像change
事件),如:
请务必查看任何支持浏览器的怪癖,特别是当用户删除已输入字符(例如使用删除键或退格键或“剪切”)时,IE9不会触发此事件。
简单,工作小提琴例如:
这是有道理的,对吗?如果从13开始有两个项目,应选择哪一个?输入文字会限制列表,之后您应该可以使用箭头(或鼠标)导航到正确的项目。这就是一个下拉通常如何工作.. – GolezTrol
btw只是建议如果'keyup'无法触发,你为什么不使用'更改keyup mousedown'更多的事件触发。 – mmativ
[textbox browser autocompletion options does not fire keypress/keyup]可能重复(http://stackoverflow.com/questions/9531612/textbox-browser-autocompletion-options-do-not-fire-keypress-keyup) – Anthony