简单的javascript表单验证不会返回true

时间:2013-09-25 12:40:53

标签: javascript html

我创建了这个函数,它检查多个文本框是否有值onsubmit。基本上它是一个javascript表单验证器。当有空文本框时,表单不应提交并提醒用户有必填字段。现在,这对我来说非常适合,但是,当已经有值并且表单已提交时,即使应该提交,它仍然无法提交。我创建了一个if语句来检查errorString是否为空或者为null,如果是,则表单应该提交,但会发生的是它用空字符串提醒用户。我认为代码仍然在if(errorString!= null || errorString ==“”)语句中,即使它不应该。

提前致谢

请参阅下面的代码:

            function validateForm()
        {
            var txtTitle = document.forms["actionStepsForm"]["txtTitle"].value;
    var txtRequestor = document.forms["actionStepsForm"]["txtRequestor"].value;
            var txtReprocessingRequest = document.forms["actionStepsForm"]["txtReprocessingRequest"].value;

            document.getElementById('rowCount').value = counter-1;

    var errorString = "";

            if (txtTitle==null || txtTitle=="")
            {
                errorString += "Title field is required. \n";
            }
            if (txtRequestor==null || txtRequestor=="")
            {
                errorString += "Requestor field is required. \n";
            }
            if (txtReprocessingRequest==null || txtReprocessingRequest=="")
            {
                errorString += "Reprocessing request FR is required. \n";
            }


            if (errorString!=null || errorString!="")
            {
                alert(errorString);
                return false;
            }
            else
            {
                return true;
            }

        }

//implementation if HTML form
<form name="actionStepsForm" id="actionStepsForm" action="add_reprocessing.php?action=add" method="POST" onsubmit="return validateForm()">

6 个答案:

答案 0 :(得分:0)

我认为正确的条件应该是

if (errorString != null && errorString != "")

否则引擎会评估'errorString!= null'条件,该条件的计算结果为true(因为errorString为“”而非null),并输入代码块。

答案 1 :(得分:0)

更改

if (errorString!=null || errorString!="")

if (errorString!=null && errorString!="")

答案 2 :(得分:0)

你有两个'not'语句相互抵消(一个必须总是假的)。将其更改为:

    if (errorString!=null && errorString!="")
    {
        alert(errorString);
        return false;
    }
    else
    {
        return true;
    }

答案 3 :(得分:0)

每个人都指出错误的一句话:

if (errorString!=null || errorString!="")

但是我想指出你不需要来检查errorString!=null,因为你已经在开头创建了一个空字符串变量你的代码:

var errorString = ""; //created errorString as empty string

因此它实际上永远不会是null,因为你从未在任何地方将它设置为null(也就是说,你从未将其设置为errorString = null)。

如果没有错误,则始终为空字符串。所以这就足够了:

        if (errorString!="") //if errorString is different than what we created at `var`
        {
            alert(errorString);
            return false;
        }
        else
        {
            return true;
        }

答案 4 :(得分:0)

errorString永远不能为null因为你用“”初始化它所以你可以删除条件“errorString!= null”。

它应该成为

        if (errorString!="")
        {
            alert(errorString);
            return false;
        }
        else
        {
            return true;
        }

答案 5 :(得分:0)

您可以使用波纹管代码检查所有四(4)个条件以进行验证,如非空,非空白,未定义,而不是零只在javascript和jquery中使用此代码(!(!(variable)))。

function myFunction() {
        var errorString;  //The Values can be like as null,blank,undefined,zero you can test

         if(!(!(errorString)))  //this condition is important
         {
         alert("errorString"+errorString);
         } 
         else 
         {
            alert("errorStringis "+errorString);
        }

        }