JavaScript: Form OnSubmit funciona pero Action no
-
13-09-2019 - |
Pregunta
En mi FORM
, por alguna razón, puedo obtener la variable de entrada de mi formulario a través de onsubmit
pero no usando action
.
Esto funciona:
<form onsubmit="javascript:myFunc(this.city.value);">
<p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>
Esto no funciona (this.city.value
se encuentra nulo)
<form action="javascript:myFunc(this.city.value);">
<p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>
Por qué es eso onsubmit
puede obtener el this.city.value
pero el action
¿El evento no puede?
Solución
La etiqueta de acción del formulario no hace referencia a nada con this
En su lugar, utilice una ubicación absoluta
action="javascript:myFnc(document.getElementById('city-field').value)"
Otros consejos
Editar : Gracias al comentario de Christoph, a continuación, me di cuenta de mi enorme descuido. Aquí está la solución final con su sugerencia en práctica.
<form action="" onsubmit="myFunc(this.city.value); return false;">
<p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>
Esto debería hacer lo que tiene. Me disculpo por no darle toda mi atención en mis respuestas anteriores.
HTML formas se utilizan para enviar datos a un script en el servidor para el procesamiento de datos. Cuando se envía un formulario, los datos en los campos del formulario se pasa al servidor en forma de pares nombre-valor. scripts del lado del servidor, que pueden ser escritas en varios idiomas diferentes, se utilizan para procesar los datos entrantes y devolver una nueva página HTML al navegador. La página devuelta al navegador podría ser cualquier cosa de un mensaje "Gracias por registrarse" o una lista de resultados de búsqueda generados a partir de una consulta de base de datos.
desde el formulario es para el envío de datos a otro archivo en el servidor. en la acción sólo se puede especificar la ruta a la que tenemos que enviar los datos. por lo que no puede obtener los valores que la forma está teniendo.