2012-05-14 26 views
1

我是jQuery的新手,一直未能找到解决方案。如何停止在按下Tab键时在keydown上运行的jQuery函数

我有这样的HTML:

<input type="text" id="Box1" /><br /> 
<input type="text" id="Box2" /> 

和jQuery:

$("#Box1").keydown(function() { 
    $("#Box2").val(""); 
}); 
$("#Box2").keydown(function() { 
    $("#Box1").val(""); 
}); 

这里举例:http://jsfiddle.net/tv4my/

当你键入 “BOX1” 然后开始键入 “BOX2”,BOX1的内容被清除。这很好,但是如果按下Tab键,我不希望这个函数运行,也就是说,如果我按Box2中的Tab键,我不想让Box1被清除。我如何在jQuery中编写这个?

+0

除了tab键,你可能也想忽略Shift,Ctrl,箭头等 – nnnnnn

+0

好主意,谢谢@nnnnnn –

回答

1

你需要检查用于启动该事件的关键:

$("#Box1").keydown(function (e) { 
    // If the pressed key is not tab (9) then reset Box2 
    if(e.keyCode !== 9){ 
     $("#Box2").val(""); 
    } 
}); 
$("#Box2").keydown(function (e) { 
    // If the pressed key is not tab (9) then reset Box1 
    if(e.keyCode !== 9){ 
     $("#Box1").val(""); 
    } 
}); 
+0

完美!非常感谢! –

1

使用e.preventDefault()该键,当点击:

$("input").keydown(function(e){ 
    if(e.keyCode == "9"){ 
     e.preventDefault(); 
    } 
}); 

检查的jsfiddle here

+0

谢谢,但我仍然需要能够选中其他框。我只是不希望在按下标签页时清除内容。这可能吗? –

相关问题