[英]jquery focus() just focusing to first text input
我有一個包含多種形式的HTML文件。 我正在嘗試將第二個表單的第一個元素集中在頁面加載上。 我將jquery代碼添加到HTML的末尾,以突出表單的第一個輸入:
<script>
$("form[id=form2]").find("input[type!=hidden]:first").focus();
</script>
如果第二個表單的第一個元素是文本輸入,則效果很好,但是如果其下拉菜單或復選框不起作用。 如何將重點放在任何第一個元素上?
編輯:我需要在表單選擇器中使用ID,因為表單ID可以是可變的。
$("form:eq(1) :input[type!='hidden']").first().focus();
不要將屬性選擇器與ID一起使用,僅使用ID選擇器會更快。
您可以使用:input
選擇器,它選擇所有輸入元素,例如input,textarea,select和button。
然后使用:first
或first()
獲取第一個。
編輯:基於注釋,ID不是常數,因此使用tagName和:eq()
可以選擇第二種形式,由於:eq()
基於零,第二種形式為1
:input選擇器根據其文檔(位於http://api.jquery.com/input-selector/)查找任何有效的表單輸入元素,其中包括下拉列表和復選框。 由於它看起來還包括隱藏的字段,因此,我還添加了:visible選擇器以排除隱藏的表單元素。
<script>
$("form[id=form2]").find(":input:visible:first").focus();
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.