2

我有这个html:

        <div class="field phone">
            <input type="text" maxlength="3" />
        </div>
        <div class="field phone number1">
            <input type="text" maxlength="3" />
        </div>
        <div class="field phone number2">
            <input type="text" maxlength="4" />
        </div>

然后我正在使用

    $(".phone input:not(:last)").keydown(function() {
        var that = this;
        setTimeout(function() {
            if (that.prevValue != $(that).val()) {
                that.prevValue = $(that).val();
                if ($(that).val().length == $(that).attr("maxlength")) {
                    $(that).nextAll("input")[0].focus();
                }
            }
        });
    });

问题是$(that).nextAll("input")[0]返回未定义,而不是输入选择器,我无法使用focus()

任何想法这里发生了什么?谢谢

4

1 回答 1

3

你可以替换:

$(that).nextAll("input")[0].focus();

有类似的东西

$(that).parent().next(".phone").find("input").focus();

正如 Kevin B 所说,.next.nextAll对兄弟姐妹工作,所以你需要回到父母,回到父母的兄弟姐妹,然后再回到孩子。

于 2013-01-11T19:28:42.470 回答