尝试让jQuery检测输入输入,但检测到空格和其他键,未检测到输入。下面有什么问题:
$("#entersomething").keyup(function(e) {
alert("up");
var code = (e.keyCode ? e.keyCode : e.which);
if (code==13) {
e.preventDefault();
}
if (code == 32 || code == 13 || code == 188 || code == 186) {
$("#displaysomething").html($(this).val());
});
<input id="entersomething" />
<div id="displaysomething"></div>
答案 0 :(得分:78)
的JavaScript / jQuery的
$("#entersomething").keyup(function(e){
var code = e.which; // recommended to use e.which, it's normalized across browsers
if(code==13)e.preventDefault();
if(code==32||code==13||code==188||code==186){
$("#displaysomething").html($(this).val());
} // missing closing if brace
});
HTML
<input id="entersomething" type="text" /> <!-- put a type attribute in -->
<div id="displaysomething"></div>
答案 1 :(得分:3)
我认为你会对keyup事件感到困难 - 因为它首先触发按键 - 如果你想要排除Enter键,你将无法阻止第二个传播。
答案 2 :(得分:1)
jQuery Sparkle包含一个自定义事件。来源可以在这里看到: http://github.com/balupton/jquery-sparkle/blob/master/scripts/resources/jquery.events.js
以下是演示http://www.balupton.com/sandbox/jquery-sparkle/demo/#event-enter
答案 3 :(得分:0)
更新:如今,我们拥有移动键盘和自定义键盘,我们无法继续信任这些任意键代码,例如13和186。换句话说,停止使用event.which
/ event.keyCode
并开始使用{{1 }}:
event.key