Javascript submit函数不触发onsubmit返回函数?
我想我对onsubmit属性有误解。我认为每次提交,比如Javascript submit函数不触发onsubmit返回函数?,javascript,forms,onsubmit,Javascript,Forms,Onsubmit,我想我对onsubmit属性有误解。我认为每次提交,比如,或任何javascript表单.submit()都会在提交后触发onsubmit=“return function();”。换句话说,我永远不会看到“上次触发”日志 例如: 函数triggerFirst(){ console.log(“第一次触发”); myForm.submit(); } 函数triggerLast(){ console.log(“上次触发”); 返回true; } HTML表单不需要javascript即可工作。请参
,
或任何javascript表单.submit()
都会在提交后触发onsubmit=“return function();”
。换句话说,我永远不会看到“上次触发”日志
例如:
函数triggerFirst(){
console.log(“第一次触发”);
myForm.submit();
}
函数triggerLast(){
console.log(“上次触发”);
返回true;
}
HTML表单不需要javascript即可工作。请参阅以下代码:
<form action="action_page.php">
First name:<br>
<input type="text" name="firstname" value="Mickey"><br>
Last name:<br>
<input type="text" name="lastname" value="Mouse"><br><br>
<input type="submit" value="Submit">
</form>
名字:
姓氏:
提交表单后,将运行
声明
是一种内置类型,可触发表单操作运行
请参阅更多信息,它可以正常工作
更新:
将第二个函数放在第一个函数内
函数triggerFirst(){
警惕(“哇”);
触发器()
}
函数triggerLast(){
警报(“wowpsubmit”);
返回true;
}
在triggerFirst函数中,要提交的内部函数调用不起任何作用。未定义提交函数。我想这里你想让函数submit,所以在下面我把对表单的引用传递给了triggerFirst函数。这应该为你澄清一些事情。打开控制台以查看输出
函数触发器优先(表单){
console.log('triggerFirst')
控制台日志(表格);
表单提交();
}
函数triggerLast(){
console.log('triggerLast')
返回true;
}
可能是因为未定义submit()
是一个错误我的错误。我已经添加了一个id来显式地通过它访问表单。但没有其他行为。添加myForm.submit();在triggerFirst()函数中添加一个alter('wow')到triggerLast()中。然后你看不到第二个“哇”,所以它不起作用。我的示例不是最好的,我的意思是您可以在triggerFirst中执行某些操作,并且只在某些情况下需要使用triggerLast()作为第二次验证。您的示例将永远不会触发triggerLast(),因为输入不会自动提交,或者?这将适用于本示例,但这是一种变通方法。我认为form.submit()将明确地调用onsubmit=“return function();”。但似乎只有
或
才会调用它。对不起,我还是不明白你的意思。没问题,可能我解释得很模糊。请参见底部的@Rupert的答案。他正是按照我的意思做的,但是如果我运行它,那么submit()函数将提交表单,而不检查onsubmit=“return function()”。这正是我试图做的,但我永远不会看到triggerLast日志:-/。如果我调试它,表单将在form.submit()之后提交,并且永远不会进入triggerLast();