2012-08-30 13 views
6

¿Hay alguna manera de enviar el formulario actual en la que tengo el enlace href como estoCómo enviar el formulario usando javascript con "este"

<a href="javascript:;" onclick="this.submit();">Save</a> 

quiero usar mismo código llega a todas partes, así que puede' t utilizar cualquier ID o clase

+1

¿Por qué quieres hacer esto? Es una buena práctica poner su código en un archivo javascript por separado. ¿Hay alguna razón por la que no puedas separar el marcado del script? – BentOnCoding

Respuesta

10

Envíe el formulario usando this.form.submit()

es decir, en su caso será como

<a href="#" onclick="this.form.submit();">Save</a> 

Pero es muy recomendable utilizar el nombre del formulario

lo contrario si se siente cómodo usando jQuery también se puede utilizar jQuery closest función

$(field).closest("form").submit(); 
+0

No, no funciona: No se puede leer la propiedad 'enviar' de –

0

lo que queremos es:

<a href="javascript:;"onclick="document.forms.<formname>.submit();">Save</a> 

en realidad parece que funciona cuando <formname> se sustituye con el ID del formulario también.

Althoughy no te recomiendo que la investigación de la práctica conocida como Unobtrusive Javascript

0

Digamos que tiene n número de formas en su página. Puede enviar i+1 º formulario utilizando:

document.forms[i].submit(); 

Así que si usted tiene sólo uno, y desea enviar el enlace de clic,

document.forms[0].submit(); 

debe ser el valor de su onclick de atributo

+0

pero luego necesito el código de diff para cada href. Tengo alrededor de 30 archivos y estoy reemplazando el botón Enviar por href con el script de shell –

1
<a href="" onclick="!function(a){while(a&&a.nodeName!="FORM")a=a.parentNode;if(a)a.submit();}(this);"></a> 
+0

indefinido El código correcto es: ''. – Paya

0

Puede probar este código

<a href="" onkeypress="submit(this.form)"/> 
<script> 
    function submit(form) { 
     form.submit(); 
    } 
</script> 
0

Utilizo esta solución como nombre de formulario desconocido:

function submitForm(originator) 
{ 
    var pN=originator.parentNode; 
    while (true) 
    { 
     if (pN&&pN.nodeName=='FORM') 
     { 
      pN.submit(); 
      break; 
     } 
     pN=pN.parentNode; 
    } 
} 

y ahora en el evento objeto de cualquier documento que podemos utilizar esta función:

<div onclick="doSomething();submitForm(this)">test</div> 
Cuestiones relacionadas