当elem出现时,自动对焦无法正常工作

时间:2016-11-09 13:15:53

标签: javascript jquery html html5

当输入显示时,我没有对输入进行自动对焦。 自动对焦属性在Chrome上间歇性地工作。 在IE11上......好吧它甚至都没有尝试添加它。

在使用jQuery应用自动对焦之前,是否需要验证DOM上输入元素的存在?

HTML5

<input type="text" class="form-control" autofocus placeholder="Filter">

JS

   function iboxHistorySearch() {
        var header = $('.client-history .ibox-title_replace'),
            searchbar = $('.client-history .client-history-searchbar'),
            closeBtn = $('.client-history .btn-dismiss');

        header.on('click', function (e) {
            e.preventDefault();
            if (searchbar.hasClass('hidden')) {
                searchbar.removeClass('hidden')find('form-control:first').focus();
                $(this).addClass('hidden');
            }
        });

        closeBtn.on('click', function (e) {
            e.preventDefault();
            if (header.hasClass('hidden')) {
                header.removeClass('hidden');
                searchbar.addClass('hidden');
            }
        });
    }

    iboxHistorySearch();

更新

searchbar.removeClass('hidden')find('form-control:first').focus();

1 个答案:

答案 0 :(得分:1)

来自(未经编辑的)问题:

$("#resultBox").val()

确保搜索栏是可以获得焦点的var searchbar = $('.client-history .client-history-searchbar') if (searchbar.hasClass('hidden')) { searchbar.removeClass('hidden').focus(); 控件。如果没有,请添加input以获取输入,第一个或特定元素,例如:

.find

    searchbar.removeClass('hidden')
             .find('.form-control:first')
             .focus();

(但使用 searchbar.removeClass('hidden') .find('input:first') .focus(); 您可能还需要添加复选框/选择等,例如)

input