¿Hay alguna manera de enviar un formulario HTML usando JavaScript que está garantizado para funcionar en todas las situaciones?¿Cómo enviar de forma confiable un formulario HTML con JavaScript?
Elaboro. El enfoque común parece ser:
formElement.submit()
Eso está bien y bien, excepto por una cosa. Los campos de un formulario están disponibles como atributos de formElement
, por lo que si hay un campo con nombre o id "text1", se puede acceder como formElement.text1
.
Esto significa que si un elementos se denomina "submit" (ya sea su nombre o suIdentificación), entonces formElement.submit()
no funcionará. Esto es porque formElement.submit
no será un método del formulario, sino el campo con ese nombre. Desafortunadamente, es bastante común que los botones de enviar tengan un nombre o id de "envío".
Dos ejemplos para ilustrar mi punto. En primer lugar, el siguiente no funcionará, porque un elemento del formulario tiene nombre de "enviar":
<form name="example" id="example" action="/">
<button type="button" name="submit" onclick="document.example.submit(); return false;">Submit</button>
</form>
El siguiente trabajo sin embargo. La única diferencia es que me han quitado el nombre de "enviar" de la forma:
<form name="example" id="example" action="/">
<button type="button" onclick="document.example.submit(); return false;">Submit</button>
</form>
Entonces, ¿hay alguna otra manera de presentar un formulario HTML usando JavaScript?
bastante molesto ... Yo tenía el mismo problema con la propiedad "longitud" de la forma (número de controles) se sustituye por el valor de una control llamado "longitud". Al final, cambié el nombre del control. –
Ver http://stackoverflow.com/questions/876243/why-does-naming-your-html-form-submit-button-submit-break-things –
Soy estúpido si sugiero darle otro nombre. .? P.ej. '" acción "' o '" ejecutar "'. – BalusC