我正在尝试验证我的表单,但是当我创建的函数没有返回false时,它应该停止提交过程,但它不会。
我的代码
var emailRE = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
function formChecker() {
if (!emailRE.test(document.reservation.email.value)) {
window.alert("Your e-mail address is invalid");
return false;
}
}
我收到警报,因此功能会检查电子邮件,但之后会停止
答案 0 :(得分:0)
先出:
我不确定 document.reservation.email.value 并不总是适用于所有浏览器。多年来,我使用这种符号感到沮丧。
请参阅:Best Practice: Access form elements by HTML id or name attribute?
以下示例对我来说效果很好。在这里贴了一个小提琴:
<form id="reservation">
Valid Email: <input type=text id="validemail" value="abc@def.com">
<label id=Result1>Result is: </label>
<br>
Invalid Email: <input type=text id="invalidemail" value="abc@def.">
<label id=Result2>Result is: </label>
</form>
var emailRE = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
function formChecker(oElement) {
if (!emailRE.test(oElement)) {
window.alert("Your e-mail address is invalid");
return false;
} else {
window.alert("Your e-mail address is valid");
return true;
}
}
document.getElementById("Result1").innerHTML = "Result is: " + formChecker(document.forms["reservation"].validemail.value);
document.getElementById("Result2").innerHTML = "Result is: " + formChecker(document.forms["reservation"].invalidemail.value);
请参阅此处的工作示例:http://jsfiddle.net/vNmt4/1/