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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top