使用数组进行javascript验证

使用数组进行javascript验证,javascript,html,forms,jsp,validation,Javascript,Html,Forms,Jsp,Validation,我编写了一个javascript函数来验证用户输入数据是否为空。名为isNotEmpty的函数标识文本框为空。但是,main函数会向JSP页面返回一条真正的语句。因此,表单被提交 2号和3号警报根据表单的输入触发。但1号警报在任何情况下都不会发出 请检查一下并帮助我。 多谢各位 var firstName; var data = new Array(); function formEntryValidationTest() { firstName = document.forms[

我编写了一个javascript函数来验证用户输入数据是否为空。名为isNotEmpty的函数标识文本框为空。但是,main函数会向JSP页面返回一条真正的语句。因此,表单被提交

2号和3号警报根据表单的输入触发。但1号警报在任何情况下都不会发出

请检查一下并帮助我。 多谢各位

var firstName;
var data  = new Array(); 

function formEntryValidationTest() {
    firstName = document.forms["regForm"]["firstName"];
    data[0] = isNotEmpty(firstName);//check the first name is empty

    for(var i=0;i<data.length;i++) {
        if(data[i]=="false")
        {
            alert("Check"); //alert No-1
            return false;
        }
    }
}

// this is the function to check whether the input is not empty
function isNotEmpty(obj) {
    if(obj.value!="") {
        alert("true"); //alert No-2
        return "true";
    }
    else
    {
        alert("false");//alert No-3
        return "false";
    }
}

返回的是字符串false,而不是布尔值false,后者在JavaScript中的计算结果为truthy值

将isNotEmpty中的return语句更改为returntrue;并返回false;以及formEntryValidationTest中的条件!资料[i]

此外,您签入的条件isNotEmpty过于严格。对于undefined和null,它将返回true,这可能是代码无法工作的原因。将其更改为以下内容:

function isNotEmpty(value){
  return value ? value.length > 0 : false;
}
然后直接传递输入值,而不是传递输入对象本身:

data[0] = isNotEmpty(firstName.value);

返回的是字符串false,而不是布尔值false,后者在JavaScript中的计算结果为truthy值

将isNotEmpty中的return语句更改为returntrue;并返回false;以及formEntryValidationTest中的条件!资料[i]

此外,您签入的条件isNotEmpty过于严格。对于undefined和null,它将返回true,这可能是代码无法工作的原因。将其更改为以下内容:

function isNotEmpty(value){
  return value ? value.length > 0 : false;
}
然后直接传递输入值,而不是传递输入对象本身:

data[0] = isNotEmpty(firstName.value);

您使用的是字符串true和false,而不是布尔值true和false。删除引号,如中所示:

   return true

instead of 

   return "true"
在if语句中执行同样的操作:

    if(data[i]==false)
instead of
    if(data[i]=="false")

请注意,没有引号

您使用的是字符串true和false,而不是布尔值true和false。删除引号,如中所示:

   return true

instead of 

   return "true"
在if语句中执行同样的操作:

    if(data[i]==false)
instead of
    if(data[i]=="false")

请注意,表单onSubmit中没有引号

no通常,我调用了formEntryValidationTest函数。我根据您的说明更改了源代码,没有改进。我找到了一条线索。当我对数据[0]=isNotEmptyfirstName.value进行注释并将条件更改为!isNotEmptyfirstName.value,它工作得非常好。同时,我删除了我在这里提到的评论,同样的问题也发生了。你能说为什么吗?这是我的档案。即使我按照你的指示做了更改,你也会发现错误。我不知道为什么。请参考Submit表单中的链接No,我调用了formEntryValidationTest函数。我根据您的说明更改了源代码,没有改进。我找到了线索。当我对数据[0]=isNotEmptyfirstName.value进行注释并将条件更改为!isNotEmptyfirstName.value,它工作得非常好。同时,我删除了我在这里提到的评论,同样的问题也发生了。你能说为什么吗?这是我的档案。即使我按照你的指示做了更改,你也会发现错误。我不知道为什么。请参考我做过的链接,但问题仍然相同。我做过,但问题仍然相同。它对我有效:它对我有效: