JS表单验证 - 提交按钮不执行任何操作

时间:2013-11-17 23:36:16

标签: javascript forms validation

我正在尝试验证我的表单,并且第一个警报有效。但是当用户填写正确的数据并单击提交时,表单不再提交。感谢任何帮助,谢谢!

<form name="register" action="register.php" onsubmit="return validateForm()" method="post">

//形成东西       

function validateForm() {
if (!checkName() || !checkEmail()) {
    return false;
} else {
    return true;
}
}

function checkName() {
var name=document.forms["register"]["name"].value;
if (name==null || name=="") {
    alert("Please fill out your name");
    return false;
}
}

function checkEmail() {
var email=document.forms["register"]["email"].value;
var atpos=email.indexOf("@");
var dotpos=email.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=email.length) {
    alert("Not a valid e-mail address");
    return false;
}
}

1 个答案:

答案 0 :(得分:1)

当电子邮件或名称存在时,您需要checkEmail和checkName才能返回true。你现在得到的东西是未定义的。

Here is a fiddle showing the solution以下是重写的两个函数:

function checkName() {
    var name = document.forms["register"]["name"].value;
    if (name == null || name == "") {
        alert("Please fill out your name");
        return false;
    }
    return true;
}

function checkEmail() {
    var email = document.forms["register"]["email"].value;
    var atpos = email.indexOf("@");
    var dotpos = email.lastIndexOf(".");
    if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length) {
        alert("Not a valid e-mail address");
        return false;
    }
    return true;
}

尽管如此,我最终还是觉得如果你最后去jQuery Validation会更开心。