jquery
  • forms
  • validation
  • input
  • 2012-02-16 15 views 34 likes 
    34

    estoy tratando de seleccionar todos los elementos de entrada, excepto input type = "submit/reset/botóncómo usar jquery para seleccionar todas las entradas, que no son enviar, reiniciar o botón?

    He tratado de hacer un selector de la siguiente manera:

    inputSelector = 'input:not(input[type=button], input[type=submit], input[type=reset]), textarea, select'; 
    

    Pero esto no funciona, debido a que la botones de envío siempre hacen en la selección final.

    Alguna idea de lo que está mal con lo anterior.

    Gracias!

    Respuesta

    48

    intente modificar el selector a la cadena de .not(...) como:

    var inputs = $('input, textarea, select') 
           .not(':input[type=button], :input[type=submit], :input[type=reset]'); 
    
    $(inputs).each(function() { 
        console.log(this.type); 
    }); 
    

    Esto hace que (posiblemente) más fácil de leer, y debería funcionar cómo espera.

    +0

    suena bien. intentemos. – frequent

    +0

    Lo estoy usando en un complemento, así que supongo que estoy atascado con el selector crummy. sigue intentándolo ... – frequent

    +0

    Ponga su primera solución de respaldo, por favor. Ambos son buenos e hicieron mi día ... – frequent

    5

    Esta respuesta es posiblemente más difícil de leer que la de Michael Robinson, pero me parece más sucinta. En lugar de ejecutar la función not(), puede seleccionarla usando :input para reunir todos los elementos del formulario, luego filtrar con la pseudoclase :not() para cada tipo de entrada no deseada.

    Desde documentación de la API de jQuery (https://api.jquery.com/input-selector/):

    El selector :input básicamente selecciona todos los controles de formulario.

    El "CSS" versión selector -como, los :not() selectores de pseudo-elementos están separados y se pueden utilizar en CSS 3, también:

    var inputs = $("#theForm").find(":input:not([type=button]):not([type=submit]):not([type=reset])"); 
    
    Cuestiones relacionadas