1

我有 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

4 回答 4

3

像这样使用jquery 的focus()函数

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

只需在Jsfiddle.net上查看您想要的结果

于 2013-02-22T06:02:38.160 回答
1

试试这个

$("#txt1").keydown(function (e) { 
if (e.which == 9)  {
    if ($.trim($(this).val() == ""))
        $(this).focus();
}
});
$("#txt2").focus(function(){
    if ($.trim($("#txt1").val() == "")) 
        $("#txt1").focus();
});
于 2013-02-22T06:02:37.280 回答
1

请在下面找到解决方案:

$(document).ready(function() {
    $("#txt2").focus(function(){
        if(!$("#txt1").val())
        $("#txt1").focus();
    });
});
于 2013-02-22T06:17:46.067 回答
1

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

$("#txt2").focus(function(e){
    if (!$.trim($("#txt1").val())) {
       $("#txt1").focus();
       return false;
    }
});
于 2013-02-22T06:20:56.090 回答