jQuery: ¿cómo encontrar los primeros botones de entrada / selección / textarea visibles excluyendo?


2 Answers

El código de JQuery está bien. Debe ejecutar en el controlador listo no en el evento de carga de la ventana.

<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>

Actualizar

Intenté con el ejemplo de Karim79 (gracias por el ejemplo) y funciona bien: http://jsfiddle.net/2sMfU/

Question

Lo intenté

$(":input:not(input[type=button],input[type=submit],button):visible:first")

pero no encuentra nada

¿Cuál es mi error?

UPD: Ejecuto esto en $ (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>

y en la depuración puedo ver que firstInput está vacío.

UPD2: estoy en la página ASP.NET ejecutándose en Sharepoint.

He encontrado hasta ahora que para algunos elementos los encuentra (para los fijos) y para otros no. :(




Puede probar el siguiente código ...

$(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>




Esta es una mejora con respecto a la respuesta de @ Mottie porque a partir de jQuery 1.5.2 :text selecciona elementos de input que no tienen un atributo de type especificado (en cuyo caso type="text" está implícito):

$('form').find(':text,textarea,select').filter(':visible:first')



Related