验证使用JavaScript和正则表达式不起作用
问题描述:
。这是我的代码。我试图验证电子邮件,但点击验证按钮时没有任何事情发生。请回复。 它没有显示消息,我不知道它为什么不显示。 这不是一个复杂的代码:验证使用JavaScript和正则表达式不起作用
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[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 validate() {
$("#result").text("");
var email = $("#email").val();
if (validateEmail(email)) {
$("#result").text(email + " is valid :)");
$("#result").css("color", "green");
} else {
$("#result").text(email + " is not valid :(");
$("#result").css("color", "red");
}
return false;
}
$("#validate").bind("click", validate);
</script>
</head>
<form>
<p>Enter an email address:</p>
<input id='email'>
<button type='submit' id='validate' >Validate!</button>
</form>
<h2 id='result'></h2>
答
尝试把你的脚本标签在你的身体的底部,或者把你的绑定代码在onload钩。
您的代码现在被构造的方式,您的绑定代码在加载主体中的元素之前运行,即绑定到不存在的元素。它适用于其他人的原因可能是因为加载顺序依赖于浏览器。因此,如果重新排序代码仍然无效,那么知道您使用的浏览器会很有趣。
+0
非常感谢你亲爱的,解决了问题 – user7441072
+0
上面的一个工作示例回答https://jsfiddle.net/o2gxgz9r/20344/ – Ananda
你或许应该绑定'validateEmail',因为没有'validate' – Damiano
不好意思,但后来又它不会工作 – user7441072
也开放开发者控制台,并查看有 –