Saya mencoba
$(":input:not(input[type=button],input[type=submit],button):visible:first")
tetapi tidak menemukan apa pun.
Apa kesalahan saya
UPD: Saya menjalankan ini di $ (document) .load ()
<script type="text/javascript">
$(window).load(function () {
var aspForm = $("form#aspnetForm");
var firstInput = $(":input:not(input[type=button],input[type=submit],button):visible:first", aspForm);
firstInput.focus();
});
</script>
dan di debug saya bisa melihat firstInput kosong.
UPD2: Saya berada di halaman ASP.NET yang dijalankan di bawah Sharepoint.
Saya telah menemukan sejauh ini bahwa untuk beberapa elemen ia menemukannya (untuk yang tetap) dan untuk beberapa tidak. :(
jquery
input
jquery-selectors
Artem
sumber
sumber
$(document)
adalahready()
?type="hidden"
? Klik kanan halaman dan lihat sumber. HTML yang dihasilkan juga penting. Tanpa itu dan SSCCE yang tepat , itu memotret dalam kegelapan.Jawaban:
Mengapa tidak hanya menargetkan yang Anda inginkan ( demo )?
$('form').find('input[type=text],textarea,select').filter(':visible:first');
Sunting
Atau gunakan jQuery : selektor input untuk memfilter turunan formulir.
$('form').find('*').filter(':input:visible:first');
sumber
':input:visible:enabled:not([readonly]):first'
Kode JQuery baik-baik saja. Anda harus mengeksekusi di penangan siap bukan di acara pemuatan jendela.
<script type="text/javascript"> $(function(){ var aspForm = $("form#aspnetForm"); var firstInput = $(":input:not(input[type=button],input[type=submit],button):visible:first", aspForm); firstInput.focus(); }); </script>
Memperbarui
Saya mencoba dengan contoh Karim79 (terima kasih untuk contohnya) dan berfungsi dengan baik: http://jsfiddle.net/2sMfU/
sumber
Ini adalah ringkasan saya di atas dan bekerja dengan sempurna untuk saya. Terimakasih atas infonya!
<script language='javascript' type='text/javascript'> $(document).ready(function () { var firstInput = $('form').find('input[type=text],input[type=password],input[type=radio],input[type=checkbox],textarea,select').filter(':visible:first'); if (firstInput != null) { firstInput.focus(); } }); </script>
sumber
Ini merupakan peningkatan dari jawaban @ Mottie karena mulai jQuery 1.5.2
:text
memilihinput
elemen yang tidak memilikitype
atribut tertentu (dalam haltype="text"
ini tersirat):$('form').find(':text,textarea,select').filter(':visible:first')
sumber
Inilah solusi saya. Kode harus cukup mudah untuk diikuti tetapi inilah idenya:
Kode:
function focusFirst(parent) { $(parent).find('input, textarea, select') .not('input[type=hidden],input[type=button],input[type=submit],input[type=reset],input[type=image],button') .filter(':enabled:visible:first') .focus(); }
Kemudian cukup panggil focusFirst dengan elemen induk atau selektor Anda.
Pemilih:
focusFirst('form#aspnetForm');
Elemen:
var el = $('form#aspnetForm'); focusFirst(el);
sumber
Anda dapat mencoba kode di bawah ini ...
$(document).ready(function(){ $('form').find('input[type=text],textarea,select').filter(':visible:first').focus(); })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <form> <input type="text" /> <input type="text" /> <input type="text" /> <input type="text" /> <input type="text" /> <input type="submit" /> </form>
sumber