无法在JS中进行表单验证工作

时间:2014-11-15 14:01:43

标签: javascript forms

所以我一直在学习基本的JS,而且我无法通过表单验证来处理数字。我将在下面发布一个代码段。请我是一个菜鸟,所以我可以从一个刚学习语言的人那里得到一个更容易理解的答案。前三个if语句工作正常,但第四个我遇到麻烦......

var checkbox = function() {
            var error = "";
            var firstname = document.getElementById("fn").value;
            var lastname = document.getElementById("ln").value;
            var email = document.getElementById("Email").value;
            var age = parseInt(document.getElementById("age").value);
            var address = document.getElementById("A").value;
            var phone = parseInt(document.getElementById("pn").value);

            if(firstname.length < 1){
                error = "Enter a valid first name!";



            }
            if(lastname.length < 1){
                error += "\nEnter a valid last name!";

            }
            if(email.length <1){
                error += "\nEnter a valid email!";


            }
            if(age.length < 1 ){
                error += "\nEnter a valid age!";

            }





            if(error.length){
                alert(error)
                return false;

            }


            return true;




        }   

4 个答案:

答案 0 :(得分:0)

你可以试试这个

        if(firstname.trim() == ""){
            error = "Enter a valid first name!";
        }
        if(lastname.trim()==""){
            error += "\nEnter a valid last name!";

        }
        if(email.trim() ==""){
            error += "\nEnter a valid email!";

        }
        if(age.trim() == "" ){
            error += "\nEnter a valid age!";

        }

        if(error.length>0){
            alert(error)
            return false;
        }

答案 1 :(得分:0)

你在检查你的年龄领域是什么?你在检查它的存在吗?如果是这样,你可以这样做:

if(!age) {
    error += "\nThis field is required";
}

如果您正在检查年龄字段中的值是否为数字,则可以执行以下操作:

if(typeof age !== "number") {
    error += "\nPlease enter a valid number!";
}

如果您正在检查年龄段是否在特定年龄范围内,您可以这样做:

if(age !== 30) {
    error += "\nYou are under 30!";
}

答案 2 :(得分:0)

在致电document.getElementById("age").value之前,您应该检查parseInt的长度。否则变量age可以是NaN。例如:

var ageVal = document.getElementById("age").value;
var age;
if (ageVal){ //same as ageVal.length > 0
  age = parseInt(age);
  if (!age){// it can be NaN
    error += "\nEnter a valid age!";
  }
}
else
{
  error += "\nEnter an age!"; //here we have age not set
}

答案 3 :(得分:0)

请试试这个

if(isNaN(age)){
            error += "\nEnter a valid age!";

}

isNan()是一个内置的javascript函数。有关详细信息,请访问http://www.w3schools.com/jsref/jsref_isnan.asp