javascript以错误的顺序验证

时间:2015-09-24 12:40:31

标签: javascript html validation

function validateForm() {
    var name = document.forms["myForm"]["name"].value;
    if (name == undefined || name == null || name == "") {
        alert("Name must be filled out");
        return false;
    }

    var letters = /^[A-Za-z]+$/;
    if (name.match(letters)) {
        return true;
    } else {
        alert('Name must have alphabet characters only');
        document.forms["myForm"]["name"].focus();
        return false;
    }
}

function validateForm() {
    var unit = document.forms["myForm"]["unit"].value;
    if (unit == undefined || unit == null || unit == "") {
        alert("Unit must be filled out");
        return false;
    }

    var alpha = /^[0-9a-zA-Z]+$/;
    if (unit.match(alpha)) {
        return true;
    } else {
        alert('User address must have alphanumeric characters only');
        document.forms["myForm"]["unit"].focus();
        return false;
    }
}

验证有效,但它从单位字段而不是名称开始,当我用正确的字符填写单位字段并提交它没有返回验证名称字段时,请需要认真的建议吗?

1 个答案:

答案 0 :(得分:1)

您不能拥有2个具有相同名称的功能,而第二个功能将覆盖第一个功能。合并这样的函数:



function validateForm() {
    var formIsValid = true;
  
    var name = document.forms["myForm"]["name"].value;
    if (name == undefined || name == null || name == "") {
        alert("Name must be filled out");
        formIsValid = false;
    } else  if (!name.match(/^[A-Za-z]+$/)) {
        alert('Name must have alphabet characters only');
        document.forms["myForm"]["name"].focus();
        formIsValid = false;
    }
  
    var unit = document.forms["myForm"]["unit"].value;
    if (unit == undefined || unit == null || unit == "") {
        alert("Unit must be filled out");
        formIsValid = false;
    } else if (!unit.match(/^[0-9a-zA-Z]+$/)) {
        alert('User address must have alphanumeric characters only');
        document.forms["myForm"]["unit"].focus();
        formIsValid = false;
    }
  
    return formIsValid;
}