JS表单验证,如果所有字段正确,则激活提交按钮
JS form validation, activate submit button if all field correct
>我在JS表单验证方面遇到麻烦。我使用正则表达式。如果用户填写的所有字段都正确,则表单中的提交按钮处于活动状态(鼠标悬停时),但是当其中一个字段不正确时,提交按钮将被禁用。当用户正确填写所有字段时 - 提交按钮仍然禁用,你能帮我解决这个问题吗?因此,用户修复所有字段并必须启用提交按钮。
<!-- validation -->
<script language=JavaScript>
function checkForm() {
var err = 0;
if (document.getElementById("fio").value == '') {
document.getElementById("fio").style.border = "1px solid #FF0000";
document.getElementById("fio_err").innerHTML = "Enter data";
err = 1;
}
if (document.getElementById("_phone_top").value.length < 5) {
document.getElementById("_phone_top").style.border = "1px solid #FF0000";
document.getElementById("tel_err").innerHTML = "length < 5";
err = 1;
}
var email = document.getElementById('email').value;
emailTest = "^[_.0-9a-z-]+@([0-9a-z][0-9a-z_-]+.)+[a-z]{2,4}$";
var regex = new RegExp(emailTest);
if (!regex.test(email)) {
document.getElementById("email").style.border = "1px solid #FF0000";
document.getElementById("email_err").innerHTML = "invalid e-mail";
err = 1;
}
if ( err == 1 ) {
document.getElementById('ok').setAttribute("disabled","disabled");
} else {
document.getElementById('ok').removeAttribute("disabled");
}
}
function setBorder(id) {
document.getElementById(id).style.border = "1px solid #C0C0C0";
document.getElementById(id+"_err").innerHTML = "";
}
</script>
<!-- Form -->
<form method="post" id="form_top" name="form_top" action="/mail.php">
<input type="text" class="textbox" name="fio" id="fio" placeholder="NAME"><div id="fio_err"></div><br><br>
<input type="text" class="textbox" name="tel" id="_phone_top" placeholder="PHONE"><div id="tel_err"></div><br><br>
<input type="text" class="textbox" name="email" id="email" placeholder="E-Mail"><div id="email_err"></div><br><br>
<input type="text" class="textbox" name="company" placeholder="COMP"><br><br>
<input type="text" name="formfrom" value="верхняя форма" hidden>
<input type="submit" class="textbox" name="ok" id="ok" value="Submit!" onmouseover="checkForm()"><br>
</form>
谢谢,禁用按钮不支持鼠标悬停时触发。我尝试在每个用户字段上使用 onblur 触发器,它工作得很好!
禁用的输入按钮不会在鼠标悬停时触发:http://jsfiddle.net/djwasp4o/如果手动从 HTML 中删除禁用的属性,将触发该事件。
此时,您可以禁用该事件:
document.getElementById('ok').setAttribute("disabled", "disabled");
有关参考,请参阅:禁用元素时触发鼠标悬停事件
相关文章:
- Javascript生成的表单未提交
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- HTML表单提交时未执行外部函数
- 在POST中将html表作为csv提交
- 我应该使用Ng提交还是点击表格
- 我想使用模态通过php文件发送邮件,并且我希望在提交关闭后关闭pop
- 激活chrome上的chrome.notifications对象
- 提示使用服务器端事件处理程序激活JavaScript
- 提交后保留下拉选择的值
- 键入最后一位数字后自动提交
- 阻止表单元素提交
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- Jquery提交表单而不刷新
- 我想知道如何只激活表单提交,而不获取jquery中ajax url的值
- JS表单验证,如果所有字段正确,则激活提交按钮
- 激活 PHP 函数的提交按钮
- 我可以使用提交按钮来激活AJAX功能吗
- 如何在激活提交按钮之前使用javascript regex匹配字符串
- 如何在按下提交按钮后激活Fancybox或如何让用户在提交后使用Fancybox显示注册屏幕
- 激活具体按钮类型=“提交”;JavaScript或JQuery