El onclick y onsubmit del formulario.

Reimpreso de: https://www.cnblogs.com/huangjinyong/p/9467544.html
https://www.cnblogs.com/huangjinyong/p/9467544.html


Recientemente encontré un proceso de filtrado de datos de formulario. Usé el evento onclick del botón para verificar y descubrí que el formulario aún se envió después de la devolución falsa.

Así que estudié cuidadosamente la relación y la diferencia entre las funciones agregadas onclick, onsubmit y submit.

onsubmit:
puede anular este evento devolviendo falso en el controlador de eventos.
Utilice esta capacidad para validar datos en el lado del cliente para evitar que se envíen datos no válidos al servidor.
Si el controlador de eventos es llamado por el atributo onsubmit del objeto de formulario,
el código debe solicitar explícitamente el valor de retorno mediante la función de retorno,
y el controlador de eventos debe proporcionar un valor de retorno explícito para cada posible ruta de código en la función de controlador de eventos.
El método de envío no invoca el controlador de eventos onsubmit.

enviar:
el método de envío no invoca el controlador de eventos onsubmit.
Llame directamente al controlador de eventos onsubmit.
¿Al usar Microsoft? Internet Explorer 5.5 y posteriores,
puede llamar al método fireEvent con un valor de onsubmit en el parámetro
sEvent . 首先 生成 一个 formulario

<form action="#" method="POST" name="A" onsubmit="return X();">
<input type="text" value="" />
<input onclick="Y()" type="submit" value="提交" />
</form>

Escriba las funciones X () e Y () usted mismo, encontraremos que el orden de ejecución de estas funciones

  1. onclick: Y();

  2. al enviar: X ();

  3. enviar();

En otras palabras

Siempre que onclick no devuelva falso, continúe ejecutando onsubmit

Siempre que onsubmit no devuelva falso, el formulario se envía

Presta atención al otro punto de la escritura.

Si está escrito en código js ,, button.onclick=function(){}o button.onclick=函数名; entonces escriba el valor de retorno directamente en el cuerpo de la función.

Si está escrito directamente en el atributo de la etiqueta, debe ser "return X ();" para obtener el valor de retorno de la función, de lo contrario simplemente llama a la función y no se pasa el valor de retorno

Escritura correcta:<input type=submit onclick="return X();">
//X() 返回false后,form的submit会被终止

Escritura incorrecta:
<input type=submit onclick="X()">

X() 返回false后未传递给onclick事件,form的submit会继续

Supongo que te gusta

Origin blog.csdn.net/wx_assa/article/details/107668932
Recomendado
Clasificación