通过JavaScript强制HTML表单验证
Force HTML form validation via JavaScript
我创建了一个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是进行验证的地方。
我的问题是:我能以编程方式强制onSubmit()以便弹出验证窗口吗?我必须明确表示,我不想创建JavaScript表单验证,即使用警报;相反,当您单击提交时,请使用JavaScript强制执行HTML验证,如下所示:https://jsfiddle.net/qdzxfm9u/
您只需将按钮的类型更改为submit
,然后将form.submit()
从JS部分中删除即可。
因此HTML部分变成:
<form id="formExample">
<input type="text" id="input1" required>
<button type="submit" onClick="form1()">Form Action 1</button>
<button type="submit" onClick="form2()">Form Action 2</button>
</form>
这样,点击任何按钮都会自己提交,但在执行JS部分之前:
form = document.getElementById("formExample");
function form1() {
form.action="example1.php";
}
function form2() {
form.action="example2.php";
}
编辑
警告:我最初的解决方案基于OP HTML部分的副本,其中的"伪按钮"使用了一个奇怪的元素<label type="input"...>
,所以我读得太快了,就好像它是<button type="button"...>
一样,只是简单地将type
从input
更改为submit
这样,它就无法按预期工作。
现在已在上述代码中更正。
也许是这样的:
var form = document.getElementById("formExample");
function form1() {
form.action="example1.php";
}
function form2() {
form.action="example2.php";
}
<form id="formExample">
<input type="text" id="input1" required>
<input type="submit" onClick="form1()" value="Form Action 1" />
<input type="submit" onClick="form2()" value="Form Action 2" />
</form>
如何制作一个dropdown
列表-可以是单选按钮-包含表单中的两个操作和一个提交按钮,如此JS Fiddle中所示,然后在表单submit
上具有一个功能
var form = document.getElementById("formExample"),
select = document.getElementById("slct");
form.addEventListener('submit', function() {
if (select.value == 1) {
form.action = "example1.php";
} else {
form.action = "example2.php";
}
// alert for demo only
alert(form.action);
form.submit();
});
<form id="formExample">
<input type="text" id="input1" required>
<select id="slct" required>
<option></option>
<option value="1">Form Action 1</option>
<option value="2">Form Action 2</option>
</select>
<button type="submit">Submit</button>
</form>
相关文章:
- 解析javascript表单验证器
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 自定义表单验证和提交
- Javascript表单验证的缺点
- Jquery的表单验证不起作用
- 语义ui表单验证:图像url
- jQuery表单验证适用于Mozilla和Internet Explorer,但不适用于Chrome或Safari
- JavaScript表单验证-“;“错误”;不按需要工作
- Mailchimp内联表单验证不适用于JS加载的HTML
- jQuery/JS获胜't在表单验证后重定向
- jquery表单验证复选框错误显示
- javascript表单验证-数值和密码
- 我想知道如何在javascript中进行表单验证
- jQuery表单验证(如果==“执行此操作”)仅适用于第一次输入
- 使用记录保存的消息进行表单验证
- 表单验证工作不正常,在不检查条目的情况下继续
- 如何对未知表单元素进行表单验证
- 使用ajax、php和mysql进行表单验证
- JS表单验证未发生
- 表单验证jsphp路径