将焦点设置为输入字段

时间:2014-01-12 22:44:10

标签: jquery html

我正在尝试将焦点设置为此Leaflet Plugin输入字段的搜索栏,但它不起作用。我尝试过使用以下内容:

//jquery  
$("#leaflet-control-geosearch-qry").focus();  
//html  
document.getElementById("leaflet-control-geosearch-qry").focus();

您可以自己尝试一下。焦点不会设置为使用上述行设置搜索栏。

将其中一个映射到一个按钮并单击该按钮会将焦点设置到搜索栏。

<script>
    //Set Focus to Search Box
    function setFocusToSearchBar(){
        document.getElementById("leaflet-control-geosearch-qry").focus();
        //or $("#leaflet-control-geosearch-qry").focus();  
    }
</script>


<div id="Focus_on_Searchbar">
    <button id="sidebar_button_focus" onclick="setFocusToSearchBar();">
        Focus on Searchbar
    </button>
</div>

这个有效! 在Chrome / FF控制台中使用其中一个不起作用,我不知道为什么不这样做,因为它适用于按钮。?

有什么想法吗? 我正在使用Bootstrap作为我的Header-Bar ...也许这很重要?

3 个答案:

答案 0 :(得分:9)

有效。发生了什么事情,当您的控制台打开时,控制台具有焦点

在控制台上输入:

setTimeout(function(){
    document.getElementById("leaflet-control-geosearch-qry").focus();
}, 5000);  //Will deffer execution 5 seconds

然后关闭控制台。 5秒后,它将聚焦。 所以,这不是编码问题,不要担心;)

干杯

答案 1 :(得分:0)

代码是正确的,当你尝试设置焦点时,DOM还没有准备好。您是否使用

封装了代码?
$(document).ready(function() {
    …
    $("#leaflet-control-geosearch-qry").focus();
    …
});

答案 2 :(得分:0)

$('#leaflet-control-geosearch-qry').attr('tabIndex', -1).focus();