javascript - 未调用表单 'onsubmit'

标签 javascript forms

这是我的表单的一部分:

<form name='form-main' onsubmit='return validate()' action='' method='post'>
    <center><input type='submit' onClick='this.disabled=true; this.form.submit();' value='I accept - Download the GM!'/></center>
</form>

这是验证函数:

function validate()
{
    // this is just to test if it actually shows
    alert('You must not leave any of the fields blank!');
    return false;
}

每当我点击提交按钮时,什么也没有发生,页面只是重新加载。我希望它显示警报对话框。

最佳答案

当您调用表单的submit 函数时,不会触发submit 事件。 This is by design ,假设是如果您从代码触发提交,您已经完成了任何必要的验证。 (请注意,HTMLFormElement#submit 函数是这样;不一定它周围的包装器库一定是这样。)

在您的示例中,我将删除按钮上的 click 处理程序。这是一个提交按钮,因此只需将任何相关逻辑放在表单的 submit 事件中即可。或者,如果您愿意,可以调用 validate() 作为按钮 click 的一部分。

关于javascript - 未调用表单 'onsubmit',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19847203/

相关文章:

forms - 使用 GET 提交 JSF 表单

c# - 想要使用 javascript 显示消息框

javascript - 将原始数组与深度克隆进行比较,不起作用

javascript - JSF:一起使用 onclick + actionListener

javascript - 尝试使用 NodeJS 从 SQLite DB 获取数据

javascript - 通过 Javascript 中的变量访问对象属性

forms - 使用文本框自动滚动到底部

php - 如何使用 Symfony2 使 form_rest() 不显示字段?

forms - Python 3中的多部分表单编码文件上传

javascript - 删除一个类并添加另一个类(附加 HTML 标签 onclick)