使用onclick()时,在输入中保留必需的标记
Keep required tag in inputs while using onclick()
我使用的是带有必需标记的输入,但目前它不起作用,即使输入中没有单词,也可以轻松完成提交。我已经搜索了一些原因,我想这是因为我使用了onclick函数。
<form id="regform" method="POST">
First name: <input type="text" id="firstname" required ><br>
Last name: <input type="text" id="lastname" required ><br>
Username: <input type="text" id="username" required><br>
Password: <input type="password" id="password" required><br>
<input type="radio" name="sex" value="male" required>Male<br>
<input type="radio" name="sex" value="female" >Female
<input type="submit" value="Register" onclick="regBtn(event)">
</form>
有没有一种方法可以在使用onclick时保持所需的活动?
是。现在你在某个地方有这样的线路:
document.getElementById("regform").submit();
它忽略任何内置的验证,只提交表单。
相反,将函数调用移动到表单的onsubmit,如下所示:
<form id="regform" method="POST" onsubmit="return regBtn(event);">
并更改函数以返回true或false,而不是强制提交:
function regBtn(event) {
if (some_cond_here) {
//all is good, let's submit the form!
return true;
} else {
//something is off, cancel form submission:
return false;
}
}
这将保留内置的HTML5表单验证。
实时测试用例-只有一个或两个字母的用户名才能看到手动验证生效。
请记住:输入标记的必需属性在Internet Explorer 9及早期版本或Safari中不受支持。
更安全的做法是这样做:
<form id="regform" method="POST">
First name: <input type="text" id="firstname" class="required"><br>
Last name: <input type="text" id="lastname" class="required" ><br>
Username: <input type="text" id="username" class="required"><br>
Password: <input type="password" id="password" class="required"><br>
<input type="radio" name="sex" value="male" class="required">Male<br>
<input type="radio" name="sex" value="female" >Female
<input id="submit" type="submit" value="Register" onclick="regBtn(event)">
</form>
和jQuery代码:
$(".required").each(function()
{
if ($(this).val() == "")
{
$('#submit').prop('disabled','disabled');
}
});
在regBtn函数中添加一些行。
function regBtn(event) {
if (!Array.prototype.slice.call(document.querySelectorAll('input[required]:not([required=false])')).every(function (element) {
return element.value != '';
})) {
return false;
}
//main function
}
相关文章:
- 当设置addFromAutocompleteOnly时,剩余文本将保留在输入字段中
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- 获取所有输入字段并保留文本字段中的值,即使在使用 javascript 和 php 提交按钮后也是如此
- 我在添加更多输入字段时遇到问题,文本字段中的值不会保留
- 使用onclick()时,在输入中保留必需的标记
- 添加一些值,以便在用户更改该服务器时将其作为占位符输入并保留它
- 使用 Java 脚本或 PHP 提交后保留输入框的最后一个值
- 如何将按钮/输入保留在图像下方
- 如何保留输入复选框值的存储数组
- jQuery clone() 将用户数据保留在输入字段中
- 如何在 AJAX 请求 (Rails) 之间保留表单输入数据
- 如何在验证失败弹簧 MVC 时保留输入表单值
- 如何在页面刷新后保留输入单选按钮的状态
- 更改属性文本并使用挖空保留输入的值
- 如何使程序保留输入的数据(数字)
- 如何使用Knockout JS应用绑定并保留输入值
- 保留输入值,而不管输入类型="number"是否验证
- Angularjs -在重定向期间保留输入的表单数据,以便用户在返回该表单时继续
- 当表单失败时保留输入字段值
- 动态添加输入字段后保留输入值