自动对焦于表单中的第一个空字段

时间:2015-10-05 12:59:18

标签: javascript jquery html model-view-controller autofocus

我正在尝试在第一个空表单字段上实现AutoFocus功能,该字段可以是输入元素或任何类型,即

<section class="scroll"> 
    <!-- ARTICLES -->
        <!-- ARTICLE -->
        <div class="article-content">
            <img class="article-image" src="${item.imgPath}" />
            <div class="article-texts">
                <h1 class="article-title">${item.title}</h1>
                <a class="article-button" href="${item.link}.html" role="button">Read Article ></a>
            </div>
        </div>
        <div class="clear"></div>
        <!-- END ARTICLE -->
    <!-- END ARTICLES -->
</section>

我查看了jquery网站并尝试使用:input 选择器 但我无法在除文本框之外的任何输入字段上实现自动对焦。 我还设置了一个JS小提琴,

Fiddle for code

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:4)

您可能需要使用filter()来查找具有空值的输入:

fatal error: lipo: can't write to output file: /Users/applemac/Library/Developer/Xcode/DerivedData/Unity-iPhone-hdkycurnjlkvikcljdgvlfnbmsua/Build/Products/Release-iphoneos/spacegame.app.dSYM/Contents/Resources/DWARF/spacegame.lipo (Undefined error: 0)

如果您使用的是$(function () { $("input:enabled").filter(function () { return this.value.trim() == ""; }).first().focus(); }); ,则无效。所以:

checkbox

小提琴:http://jsfiddle.net/7fwrd2rk/

答案 1 :(得分:1)

您需要filter()输出空/未选中​​的输入,并将焦点设置为匹配集中的第一个元素,如下所示。

$(function () {
    $("input:enabled").filter(function () {
        return this.type.match(/checkbox|radio/i) && //when it's a checkbox/radio
               !this.checked || //get me a list of unselected ones
               ($.trim(this.value) === ""); // else get me a list of empty inputs
    }).first().focus(); //grab the first from the list and set focus
});

以下是同一行的a demo

This包括textarea并选择。