提交函数不会触发onsubmit返回函数?

时间:2016-01-29 14:56:59

标签: javascript forms onsubmit

我认为我对onsubmit属性有误解。我认为每次提交,例如<input type="submit" ...><button></button>或任何javascript form.submit()都会在提交后触发onsubmit="return function();"。换句话说,我永远不会看到最后一次触发&#34;日志中。

示例:

&#13;
&#13;
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;
&#13;
&#13;

这个例子永远不会触发onsubmit,为什么?我认为提交意味着是否有人提交?这是假的吗?

3 个答案:

答案 0 :(得分:2)

有效。

<强>更新: 将第二个功能放在第一位。

&#13;
&#13;
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;
&#13;
&#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函数。这应该为你澄清一些事情。打开控制台以查看输出。

&#13;
&#13;
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;
&#13;
&#13;