javascript - 使用 anchor 提交时表单未验证

标签 javascript validation anchor

我正在尝试使用 anchor 标记提交表单。但是,验证功能似乎没有被触发。我已经用提交按钮替换了 anchor ,现在它可以工作了。不过,我很好奇为什么之前的 anchor 链接不起作用。

代码是

function validate() {

/* validation code here */

return status;

}

<form id="myForm" action="/response_page.php" onsubmit="return validate();" method="POST">

<!-- form elements here -->

<a href="#" class="submit_button" onclick="document.getElementById('myForm').submit();">Submit</a>

</form> 

使用此代码,单击链接将直接转到*response_page.php*。但是当替换为提交按钮时

<input type="submit" value="submit" /> 

在不更改验证函数和表单标记的情况下,可以正确调用验证函数。 anchor 出了什么问题?

谢谢

最佳答案

这是预期的行为。

来自the MDN on the submit function :

The form's onsubmit event handler (for example, onsubmit="return false;") will not be triggered when invoking this method from Gecko-based applications. In general, it is not guaranteed to be invoked by HTML user agents.

如果您想验证链接中的代码,只需显式调用 validate 函数即可:

<a id=subbut href="#" class="submit_button">Submit</a>
...
document.getElementById('subbut').addEventListener('click', function(){
    if (validate()) document.getElementById('myForm').submit();
});

关于javascript - 使用 anchor 提交时表单未验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19881721/

相关文章:

javascript - 传单标记群集标记和群集图标在加载时均可见

javascript - div点击事件在iframe结束时不上升?

javascript - 使用 jquery 覆盖 anchor 标记的默认行为

php - 将 Javascript 结果保存为 PHP 值?

javascript - 如何使用jquery仅当当前div有效时才激活下一个div?

java - 如何在 Spring 中验证长 PathParam

c# - 在验证上下文中使用 HttpRequest

javascript正则表达式从 anchor 标签中提取 anchor 文本和URL

css anchor 图像高度问题

javascript - React Chart.js onClick 自定义图例