我认为我对onsubmit属性有误解。我认为每次提交,例如<input type="submit" ...>
,<button></button>
或任何javascript form.submit()
都会在提交后触发onsubmit="return function();"
。换句话说,我永远不会看到最后一次触发&#34;日志中。
示例:
function triggerFirst() {
console.log("first triggered");
myForm.submit();
}
function triggerLast() {
console.log("last triggered");
return true;
}
&#13;
<form id="myForm" onsubmit="return triggerLast();">
<input type="button" onclick="triggerFirst();" value="trigger">
</form>
&#13;
这个例子永远不会触发onsubmit,为什么?我认为提交意味着是否有人提交?这是假的吗?
答案 0 :(得分:2)
有效。
<强>更新:强> 将第二个功能放在第一位。
function triggerFirst() {
alert('wow');
triggerLast()
}
function triggerLast() {
alert('wowpsubmit');
return true;
}
&#13;
<form id="myForm" onsubmit='return triggerLast();'>
<input type="button" onclick="triggerFirst();" value="trigger" >
</form>
&#13;
答案 1 :(得分:0)
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>
提交表单后运行<form action="action_page.php">
声明。
<input type="submit" value="Submit">
是内置类型,可触发表单操作。
查看更多here
答案 2 :(得分:0)
在你的triggerFirst函数中,提交的内部函数调用什么都不做。该提交函数未定义。我想在这里你想让函数提交,所以下面我将表单的引用传递给triggerFirst函数。这应该为你澄清一些事情。打开控制台以查看输出。
function triggerFirst(form) {
console.log('triggerFirst')
console.log(form);
form.submit();
}
function triggerLast() {
console.log('triggerLast')
return true;
}
&#13;
<form onsubmit="return triggerLast();">
<input type="button" onclick="triggerFirst(this.form);" value="trigger">
</form>
&#13;