首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表单提交前的字段验证

表单提交前的字段验证
EN

Stack Overflow用户
提问于 2014-09-07 00:05:15
回答 2查看 74关注 0票数 1

我需要验证一个电子邮件地址在一个表单,但需要提交后,验证电子邮件地址。所以,真的,我需要一种调用Javascript的方式,上面写着“是的,你的电子邮件是有效的(就像包含所有你想要的东西一样),然后提交表单。我没有办法绕过它,我需要表单提交给表单标题中的操作。”

代码语言:javascript
复制
<html>
<head>
<script>

</script>
</head>
<body>

<form method="post" action="/captiveportal-test.php">
   <input name="email" type="text">
   <input name="redirurl" type="hidden" value="$PORTAL_REDIRURL$">
   <input name="mac" type="hidden" value="$CLIENT_MAC$">
   <input name="ip" type="hidden" value="$CLIENT_IP$">

   <input name="accept" type="submit" value="Continue">
</form>

</body>
</html>

有没有人知道我如何验证电子邮件地址,如果电子邮件地址包含@符号,提交(所以所有的帖子值都经过指定的操作)?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-07 00:45:33

另一种解决办法

代码语言:javascript
复制
<!-- HTML -->
<form method = "post" action = "/captiveportal-test.php">
   <input name = "email" type = "text">
   <input name = "accept" type = "submit" value = "Continue">
</form>
代码语言:javascript
复制
// JavaScript
window.onload = function(){
  var form = document.forms[0],
      pattern = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/; 
  form.onsubmit = function(){
    if(!pattern.test(form.email.value)){
      alert("Invalid email"); 
      return false;
    }
  };
};

工作jsBin

票数 1
EN

Stack Overflow用户

发布于 2014-09-07 00:19:05

HTML:

代码语言:javascript
复制
<form id="form" method="post" action="">
    <input class="email" name="email" type="email">
    <input name="accept" type="submit" value="Continue">
</form>

JavaScript:

代码语言:javascript
复制
function validEmail(email) {
    if (!(email && (typeof email === 'string' || email instanceof String))) return false;
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}

function addEvent(el, name, fn) {
    if (el.addEventListener) {
        return el.addEventListener(name, fn, false);
    } else if (el.attachEvent) {
        return el.attachEvent('on' + name, fn);
    }
}

function check(e) {
    e.preventDefault();
    if (!validEmail(document.querySelector('.email').value)) {
        alert('Invalid Email');
        return false;
    }
    form.submit();
}

var form = document.getElementById('form');
addEvent(form, 'submit', check);

演示: http://jsfiddle.net/rurz01Lm/3/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25705909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档