2010-11-27 15 views
53

¿Hay alguna forma de completar todos los datos de una determinada forma? Digamos, algo como esto:jquery obtener toda la información de la forma específica

<form id="unique00"> 
    <input type="text" name="whatever" id="whatever" value="whatever" /> 
    <div> 
    <input type="checkbox" name="whatever" id="whatever" value="whatever" /> 
    </div> 
    <table><tr><td> 
    <input type="hidden" name="whatever" id="whatever" value="whatever" /> 
    <input type="submit" value="qweqsac" /> 
    </td></tr></table> 
</form> 
<form id="unique01"> 
    <div> 
    <input type="text" name="whatever" id="whatever" value="whatever" /> 
    <input type="checkbox" name="whatever" id="whatever" value="whatever" /> 
    </div> 
    <table><tr><td> 
    <input type="hidden" name="whatever" id="whatever" value="whatever" /> 
    </td></tr></table> 
    <select>blah...</select> 
    <input type="submit" value="qweqsac" /> 
</form> 
etc forms... forms... 

* Nota: cada forma puede tener una cantidad diferente de entrada y el tipo y estructura diferente html

todo, hay una manera de poblar el aporte de cierta forma id? por ejemplo, si hago clic en el botón de enviar desde cierta identificación de formulario, entonces jquery rellenará para mí toda la entrada dentro de ese id de formulario. Actualmente lo que estoy haciendo es así:

$("form").submit(function(){ return validateForm($(this)) }); 
function validateForm(form){ 
var retVal = true; 
var re; 
$.each(form.serializeArray(), function(i, field) { 
    var input = $('input[name='+field.name+']'); 
    field.value = $.trim(field.value); 
    switch(field.name){ 
    case "name" : 
     and another cases... 
     } 
    }) 
} 

que fue el trabajo, pero en ese caso, solo me dan la field.name y field.value, y en realidad lo que quiero es que quiero una Objeto jquery para cada elemento de entrada, para que pueda acceder a su css, id, nombre e incluso animar esos elementos de entrada

¿Hay alguna forma de hacerlo?

por favor, hágamelo saber y gracias de antemano! y LOs

Respuesta

124

para recorrer todas las entradas en una forma que puede hacer esto:

$("form#formID :input").each(function(){ 
var input = $(this); // This is the jquery object of the input, do what you will 
}); 

Este utiliza el jQuery :input selector para obtener todos los tipos de entradas, si lo que desea es un texto que puede hacer:

$("form#formID input[type=text]")//... 

etc.

+1

Eso es trabajo a excepción de la opción de seleccionar? – AnD

+3

Creo que la entrada funciona para eso, pero de lo contrario podrías hacer: '$ (" form # formID input [type = text], form # formID select ")' – TJB

+0

Nota: Escribe tu primera respuesta en la parte superior. $ ("from debe ser $ (" form – Mitch

16

el código de abajo ayuda a conseguir los detalles de los elementos de la forma específica con el formulario de identificación,

$('#formId input, #formId select').each(
    function(index){ 
     var input = $(this); 
     alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val()); 
    } 
); 

El código de abajo ayuda a conseguir los detalles de los elementos de todas las formas que son lugar en la carga de la página,

$('form input, form select').each(
    function(index){ 
     var input = $(this); 
     alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val()); 
    } 
); 

El código de abajo ayuda a obtener los detalles de los elementos que son lugar en la carga de la página, incluso cuando el elemento no hay lugar dentro de la etiqueta,

$('input, select').each(
    function(index){ 
     var input = $(this); 
     alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val()); 
    } 
); 

NOTA: añadimos el nombre de la etiqueta más elemento de lo que necesitamos en el objeto lista como la siguiente,

Example: to get name of attribute "textarea", 

$('input, select, textarea').each(
    function(index){ 
     var input = $(this); 
     alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val()); 
    } 
); 
1

Uso de formularios HTML "elementos" atributo:

$.each($("form").elements, function(){ console.log($(this)); }

Ahora no es necesario proporcionar nombres tales como "de entrada, área de texto, seleccione ...", etc.

+0

¡Dooh! - Demasiada información. Pruebe con una forma más de ver quickerer forma información $. ("Forma: de entrada") cada uno (function (índice) \t {\t \t \t \t \t \t \t \t \t \t console.log (índice, this.type, esto. id, this.name, this.value, this.placeholder); \t} ); –

Cuestiones relacionadas