检测文字输入中的输入
我试图检测用户在输入文字时还是输入Enter
。事件只有在按键“释放”和键释放都发生在文本输入内时才会触发。也就是说,如果事件在身体某个其他部分按下Enter
,则该事件不应触发,然后专注于输入并释放它。所以,我试过如下:检测文字输入中的输入
<!DOCTYPE html>
<html>
<head>
<script src="jquery.js">
</script>
<script>
$(document).ready(function(e){
$("input").keyup(function(e){
if (e.which == 13 && $(this).attr("enter") == "1") { alert("Yep!"); }
});
$("input").keydown(function(e) {
if (e.which == 13) { $(this).attr("enter","1"); }
});
$(document).on("keyup",function(e) { if (e.which == 13) { $("input").attr("enter","0"); } });
});
</script>
</head>
<body>
<input type = 'text' enter = '0' />
</body>
</html>
,但我有一个奇怪的问题。当我关注输入并按Enter
时,输入的属性enter
仍然如预期的那样为0
。但是,如果我现在关注输入,但如果我现在关注输入,Firebug将显示属性变为1.因此,在此之后,如果我释放键,事件将被触发。
谁能告诉我如何解决这个问题? keypress
不工作,因此,如果您只需
$("input").keypress(function(e){
if (e.which == 13) { alert("Yep!"); }
});
更换整个块然后再尝试这样做,点击了输入的取消焦点,然后按Enter
并同时保持按下状态,重点投入。您现在将看到一系列连续的提醒!
因为你有两个事件绑定到输入如下。
一个内部
$("input").keyup(function(e){
和其他内部
$(document).on("keyup",function(e) {
所以首先你需要使用e.stopPropagation();
一些错字这里'garion' – Jai 2013-03-06 10:42:45
@Jai thanx队友... – 2013-03-06 10:46:50
你尝试过我的答案???。 – 2013-03-06 10:46:05
是的。不起作用.. :( – SexyBeast 2013-03-06 10:53:54