函数在Javascript中不返回false

时间:2014-01-30 19:27:47

标签: javascript function validation

我正在尝试验证我的表单,但是当我创建的函数没有返回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;
    }

}

我收到警报,因此功能会检查电子邮件,但之后会停止

1 个答案:

答案 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/