jquery - 如何将焦点返回到同一文本框

时间:2013-02-22 05:37:52

标签: jquery textbox

我有2个文本框。如果第一个文本框为空,则当我点击选项卡或用户有意将焦点放在第二个文本框上时,它无法进入第二个文本框。

HTML

<input type="text" id="txt1" />
<input type="text" id="txt2" />

的jquery / JavaScript的

$("#txt1").keydown(function (e) {
    if (e.which == 9)  {
        if ($.trim($(this).val() == ""))
            $(this).focus();
     }
 });

if ($("#txt2").is(":focus")) {
    if ($.trim($("#txt1").val() == "")) 
         $("#txt1").focus();
}

请参阅:http://jsfiddle.net/N8GAr/

我需要帮助。感谢。

4 个答案:

答案 0 :(得分:3)

像这样使用jquery的focus()功能

$("#txt2").focus(function() {
        alert('abc');
        if ($.trim($("#txt1").val() == "")) 
             $("#txt1").focus();
    });

Jsfiddle.net

上看到您想要的结果

答案 1 :(得分:1)

试试这个

$("#txt1").keydown(function (e) { 
if (e.which == 9)  {
    if ($.trim($(this).val() == ""))
        $(this).focus();
}
});
$("#txt2").focus(function(){
    if ($.trim($("#txt1").val() == "")) 
        $("#txt1").focus();
});

答案 2 :(得分:1)

请找到以下解决方案:

$(document).ready(function() {
    $("#txt2").focus(function(){
        if(!$("#txt1").val())
        $("#txt1").focus();
    });
});

答案 3 :(得分:1)

您不需要在那里进行双重逻辑检查。例如,如果第一个字段为空,则此代码不允许第二个字段被聚焦。你想要这个,对吧? 如果用户在第一个字段中按Tab键,它仍将保持第一个字段的焦点。如果第一个字段不为空,则仅移动到第二个字段。

$("#txt2").focus(function(e){
    if (!$.trim($("#txt1").val())) {
       $("#txt1").focus();
       return false;
    }
});