2014-12-06 54 views
-1

我是新来的JS,并试图创建一个输入字段,只有当用户键入页面上的任何位置时才会出现。目前,输入字段的显示工作,但一旦可见,用户仍然需要点击该字段才能输入。如何聚焦隐藏的输入字段

我想它的工作,如:

  • 用户按下 “S”
  • 场出现带有 “S” 在这类型的。

任何帮助将不胜感激!

http://codepen.io/jeremypbeasley/pen/RNrore

var searchArea = $(".search"); 

searchArea.hide(); 

$(document).ready(function() { 

    $("body").keydown(function() { 
    searchArea.show(); 
    searchArea.elements['input'].focus(); 
    console.log("worked!"); 
    }); 

}); 

回答

4

什么是searchArea.elements['input']该怎么办?

尝试像这样相反,使用jQuery的find方法

$("body").on('keydown', function() { 
    searchArea.show().find('input').focus(); 
}); 

PEN

2

您需要find的SEACH区域内的input元素,然后调用focus()它:

$(document).ready(function() { 
    var $searchArea = $(".search").hide(); 

    $("body").keydown(function() { 
    $searchArea.show(); 
    $searchArea.find('input').focus(); 
    }); 
}); 

Updated CodePen

0

或者只是设置id来输入字段(<输入自动聚焦= “自动聚焦” id="hid_inp">) 并使用$("#hid_inp").focus();代替searchArea.elements['input'].focus();"

相关问题