【问题标题】:Javascript form validation submit errorsJavascript表单验证提交错误
【发布时间】:2012-11-28 00:01:38
【问题描述】:

从我在网上看到的所有内容看来,以下代码应该执行以下操作(这是我的期望):

  • 如果电子邮件(“帮助”)与正则表达式不匹配,则显示警报消息并返回 false
  • 如果密码(“pass”)为空,则显示警告消息并返回 false
  • 如果两个条件都通过验证,请提交表单

Javascript如下:

function validate() {
var email = document.getElementById('aid').value;
var pass = document.getElementById('apw').value;        
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;  
if (!emailPattern.test(email)) {
    alert("Not a valid email address");
    return false;
}
if (pass == null || pass == "") {
    alert("Password is blank");
    return false;   
}
return true;
}

标签的开头如下:

<form action="choose.php" onsubmit="validate();" method="post">

我遇到的问题是,当单击提交按钮时,会弹出警告消息,但随后在浏览器中加载了choose.php。如果触发了错误条件,我希望脚本保留在页面上,直到两个条件都通过。

【问题讨论】:

  • 旁注,这里有一个更好的正则表达式:ex-parrot.com/~pdw/Mail-RFC822-Address.html
  • 存在无法通过电子邮件测试的有效电子邮件地址。最好让用户输入他们想要的任何内容并通过发送电子邮件进行测试。哦,该函数不必返回truefalse 以外的任何值都会让表单提交。
  • 我知道上述 RegEx 的缺点(并且通常使用 RegEx 来验证电子邮件),但这些并不是这个项目真正关心的问题。感谢您的链接/输入。

标签: javascript forms validation


【解决方案1】:

您需要将您的 onSubmit 更改为 onSubmit="return validate();"。这样,当它返回 false 时,表单不会被提交。现在它只是调用 validate() 函数并继续提交表单

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 2015-12-01
    • 2017-04-27
    • 1970-01-01
    相关资源
    最近更新 更多