¿Por qué el siguiente código no hace que se llame a foo()?
<script> function foo(){ alert("hi"); return false; }; var myForm=document.createElement('FORM'); myForm.method='POST'; myForm.action="http://www.example.com/test.php"; myForm.id="myForm"; myForm.onsubmit="return foo()"; document.body.appendChild(myForm); document.getElementById("myForm").submit(); </script> myForm.onsubmit="(e)=>{alert("hi"); e.preventDefault()}"; además, tampoco funciona.
El onsubmit debe establecerse en la función real, no en una cadena entre comillas
Considere cambiar esto
myForm.onsubmit="return foo()";A esto
myForm.onsubmit=foo;Se supone que la función onsubmit es una function , no una string .
Si lo establece como una string , no funcionará correctamente.
Para solucionarlo, simplemente configúrelo como una función, como se muestra a continuación.
myForm.onsubmit = foo;Asegúrese de no agregar paréntesis (de lo contrario, lo llamará y no funcionará).
También puede probar la función addEventListener , así.
myForm.addEventListener("submit", foo); Hace lo mismo que onsubmit , pero con una sintaxis diferente.