2011-01-21 12 views
5

que tienen la forma siguiente:
<form name="dealerLocatorForm"method="post"action="result.php">...</form>forma jQuery presentar vs document.form.submit

He adjuntado el plugin Omniture SiteCatalyst formAnalyis a ella, que se supone que enviar información sólo cuando no se envía el formulario .

Comportamiento esperado: cuando se envía un formulario con un botón de envío, NO se debe activar ninguna baliza (porque las cosas salieron como se esperaba).

Problema:
la forma necesaria una validación por lo que los desarrolladores decidieron presentar programación el formulario utilizando: document.form.dealerLocatorForm.submit() o document.dealerLocatorForm.submit()

Sin embargo, cuando el formulario se envía esta manera, el plugin se dispara un faro que me informaba que el formulario no fue enviado AUNQUE FUERA.

Por otro lado si uso jQuery para presentar como tan: jQuery('form[name=dealerLocatorForm]').submit()
se envía el formulario correctamente y el faro no se dispara!

En resumen, jQuery está replicando con éxito todas las funcionalidades de un formulario enviado como si hubiera sido enviado por un botón Enviar, mientras que el envío de document.form no lo está.

Así que mi pregunta es: ¿Cuál es la diferencia entre:
document.form.dealerLocatorForm.submit()
document.dealerLocatorForm.submit()
y
jQuery('form[name=dealerLocatorForm]').submit()

Parece como si jQuery está haciendo algo más preciso.

+0

Tiene la misma pregunta. Cuando intenté vincular $ ("# myform"). Submit (función() {// hacer algo; devolver falso;}) nunca se dispara cuando se llama a document.myform.submit() desde el formulario – kiev

Respuesta

0

La sintaxis para enviar el formulario a través de JavaScript es el siguiente -

document.formName.submit(); 

En el caso de que tenga la formname como dealerLocatorForm

El código que ha utilizado para presentar la forma es -

document.form.dealerLocatorForm.submit(); 

Esto está mal según la sintaxis, debería ser el siguiente -

document.dealerLocatorForm.submit() 
+0

thx para la retroalimentación , pero el mismo problema ocurre – ddallala

0

Puedo estar equivocado, pero creo que cuando envía el formulario usando jquery, elude los otros eventos vinculados como onsubmit() vinculado al formulario. Su faro es probablemente disparado por algún tipo de validación en enviar y eso es probablemente por qué no es despedido cuando se utiliza jQuery

+0

acutally tal vez no estoy explicando esto bien. jQuery realmente está replicando el comportamiento esperado de un botón mejor que el documento presentado. Voy a volver a editar – ddallala

2

El comportamiento de esta sintaxis no es estándar y no es coherente en todos los navegadores:

document.form.dealerLocatorForm.submit() 
document.dealerLocatorForm.submit() 

Use getElementById() lugar (que es lo que jQuery utiliza internamente):

document.getElementById("dealerLocatorForm").submit() 

Asegúrese de que tiene el atributo id establecido en el elemento de formulario:

<form id="dealerLocatorForm" ... >