2012-01-12 22 views
7

la situación que estoy luchando con es que hay más formas en la página que se parece a esto (la hiddenId es diferente en cada formulario):¿Cómo presento un formulario sin ID de formulario y sin ID de envío, pero con un valor oculto conocido?

<form method="post"> 
<input type="hidden" name="hiddenId" value="111222"> 
<input type="submit" value="Proceed"> 
</form> 

<form method="post"> 
<input type="hidden" name="hiddenId" value="111333"> 
<input type="submit" value="Proceed"> 
</form> 

¿Cómo envío con javascript (no lo hago mente usando jQuery) una forma específica que incluye hiddenId de un valor deseado? ¡Gracias por tu ayuda!

+1

¿por qué no puedes dar a los formularios una clase o identificación? – binnyb

+0

nombre está en desuso, debe usar id. nunca use la misma identificación para más de un elemento. –

Respuesta

7

algo en este sentido debería empezar:

var inputs = document.getElementsByTagName("input"); 
for(var i = 0; i < inputs.length; i++) { 
    if(inputs[i].type === "hidden" && inputs[i].value === "111333") { 
     inputs[i].form.submit(); 
    } 
} 

Si puede utilizar jQuery:

$("input[type='hidden'][value='something']").closest("form").submit(); 
+0

... o simplemente podría usar su propiedad 'form' ... – Neil

+0

@Neil - Sí, eso podría ser un poco mejor :) Editado. –

+0

Muchas gracias, ¡ambas soluciones funcionan a la perfección! * Nota para principiantes como yo: el código debe estar al final de la página. * –

2

Accede a todos los formularios utilizando var allForms = document.forms;

bucle a través de ellos, según sea necesario a las entradas de acceso

0

Puede agregar un id. Al formulario y a su botón bmit:

<form method="post" id="form1"> 
<input type="hidden" name="hiddenId" value="111222"> 
<input type="submit" value="Proceed" id="submit1"> 
</form> 

<form method="post" id="form2"> 
<input type="hidden" name="hiddenId" value="111333"> 
<input type="submit" value="Proceed" id="submit2"> 
</form> 

Entonces usar jQuery para enviar el formulario:

$("#submit1").click(function() { 
    form1.submit(); 
} 
$("#submit2").click(function() { 
    form2.submit(); 
} 
+1

* SI * el póster original estaba usando (o quería usar) jQuery, sí. –

+0

El OP no está utilizando jQuery. –

+0

El cartel original decía "¿Cómo presento con javascript?", Es por eso que tomé este enfoque. –

6

document.forms es una matriz. document.forms[0] es el primero.

elementos funcionan de la misma manera:

document.forms[0].elements[0].value etc.

Puede recorrer hasta que tenga el valor a continuación, enviar el formulario actual:

document.forms[x].submit() 
1

Usted podría utilizar document.querySelector o uno de las diversas bibliotecas de JavaScript que lo emulan en navegadores antiguos para encontrar el elemento de entrada oculto, luego usa su propiedad form para acceder al formulario e invocar el método submit.

Cuestiones relacionadas