【发布时间】:2016-03-27 22:53:23
【问题描述】:
我创建了一个 HTML 表单,它有两个按钮(而不是提交按钮),每个按钮都以编程方式将表单发送到一个唯一的表单操作地址。
<form id="formExample">
<input type="text" id="input1" required>
<label type="button" onClick="form1()">Form Action 1</label>
<label type="button" onClick="form2()">Form Action 2</label>
</form>
脚本:
form = document.getElementById("formExample");
function form1() {
form.action="example1.php";
form.submit();
}
function form2() {
form.action="example2.php";
form.submit();
}
运作良好,响应您按下的按钮。但是,之前工作的相同 html 表单验证(使用“提交”按钮时)不再显示提示,并且无论是否有输入,表单都会发送。
我已经读过,因为我以编程方式调用 form.submit(),它绕过了表单的 onSubmit() 函数,这是进行验证的地方。
我的问题是:我可以以编程方式强制 onSubmit() 以便弹出验证吗?我必须明确表示我不想创建 JavaScript 表单验证,即使用警报;相反,当您单击提交时,请使用 JavaScript 来执行此处的 HTML 验证:https://jsfiddle.net/qdzxfm9u/
【问题讨论】:
-
您只需将按钮的类型从
button更改为submit并从您的JS 部分中删除form.submit()。 -
如果你会使用JQuery,看看this answer。
-
干杯@cFreed,这已经解决了问题!如果您想在答案部分再次提供它,我很乐意接受作为解决方案。谢谢!
-
大功告成!很高兴为您提供帮助,也很高兴您接受我的回答 :)
-
@dantan04,你可以考虑
<input type="submit" onClick="form1()" value="Form Action 1" />而不是<label type="submit" onClick="form2()">Form Action 2</label>,因为后者不是一个有效的HTML,把你的表单html放在validator.w3.org/nu/#textarea的正文中,然后点击check
标签: javascript html