无法在另一个功能中调用功能

时间:2011-04-19 11:19:04

标签: javascript validation function-pointers

<script language="JavaScript">

    function formCheck() 
    {
        var getValues = new Array();

        getValues[0] = document.getElementById('jumpMenu');
        getValues[1] = document.getElementById('fName');
        getValues[2] = document.getElementById('lName');
        getValues[3] = document.getElementById('fName');
        getValues[4] = document.getElementById('streetAdr');
        getValues[5] = document.getElementById('city');
        getValues[6] = document.getElementById('state');
        getValues[7] = document.getElementById('zipcode');
        getValues[8] = document.getElementById('country');
        getValues[9] = document.getElementById('dob_m');

        if ( getValues[0].value == 'Select Title' ) 
        {
            document.getElementById('jumpMenu').style.backgroundColor='#FFD2D2';
            return false;
        }
        else if ( getValues[1].value == '' ) 
        {
            document.getElementById('fName').style.backgroundColor='#FFD2D2';           
            document.getElementById('fNameError').innerHTML='field is empty';
            document.getElementById("fNameError").style.fontSize="10px";
            document.getElementById("fNameError").style.color="red";
            document.getElementById("fNameError").style.display="inline";
            return false;
        }
        else if ( getValues[2].value == '' ) 
        {
            document.getElementById("lName").style.backgroundColor="#FFD2D2";
            document.getElementById("lNameError").innerHTML="field is empty";
            document.getElementById("lNameError").style.fontSize="10px";
            document.getElementById("lNameError").style.color="red";
            return false;
        }
        else if ( getValues[4].value == '' ) 
        {
            document.getElementById("streetAdr").style.backgroundColor="#FFD2D2";
            document.getElementById("stNameError").innerHTML="field is empty";
            document.getElementById("stNameError").style.fontSize="10px";
            document.getElementById("stNameError").style.color="red";
            return false;
        }
        else if ( getValues[5].value == '' ) 
        {
            document.getElementById("city").style.backgroundColor="#FFD2D2";
            document.getElementById("cityError").innerHTML="field is empty";
            document.getElementById("cityError").style.fontSize="10px";
            document.getElementById("cityError").style.color="red";
            return false;
        }
        else if ( getValues[6].value == '' ) 
        {
            document.getElementById("state").style.backgroundColor="#FFD2D2";
            document.getElementById("stateError").innerHTML="field is empty";
            document.getElementById("stateError").style.fontSize="10px";
            document.getElementById("stateError").style.color="red";
            return false;
        }
        else if ( getValues[7].value == '' ) 
        {
            document.getElementById("zipcode").style.backgroundColor="#FFD2D2";
            document.getElementById("zipcodeError").innerHTML="field is empty";
            document.getElementById("zipcodeError").style.fontSize="10px";
            document.getElementById("zipcodeError").style.color="red";
            return false;
        }
    }



    function normalColor(val)
    {
        document.getElementById(val).style.backgroundColor="";

    }

</script>

你好,

我正在用javascript编写代码,你可以看到我正在执行表单验证...所以我声明数组然后将日期放在数组中,然后使用if,else if语句并使用innerHTML来执行验证div容器中的数据。

但是这些代码显示我的专业工作..而且我真的讨厌这个...所以我试图定义新的功能,其中存储错误消息位不能正常工作..

function displayMsg(val)
{
        document.getElementById(val).innerHTML="field is empty";
        document.getElementById(val).style.fontSize="10px";
        document.getElementById(val).style.color="red";
}

但是当我调用这个函数时它什么都没给我

else if ( getValues[1].value == '' ) 
{
    document.getElementById('fName').style.backgroundColor='#FFD2D2';           
        displayMsg(fNameError);
        return false;
}

所以请帮助我弄清楚并给我一些提示,让我的代码更专业和更好。

2 个答案:

答案 0 :(得分:1)

也许你只是错过fNameError

周围的引号
    displayMsg("fNameError");

关于使代码更好一些,你可以只评估元素一次而不是重复,所以而不是:

    function displayMsg(val)
    {
      document.getElementById(val).innerHTML="field is empty";
      document.getElementById(val).style.fontSize="10px";
      document.getElementById(val).style.color="red";
    }

有这个

    function displayMsg(val)
    {
      var element = document.getElementById(val);
      element.innerHTML = "field is empty";
      element.style.fontSize = "10px";
      element.style.color = "red";
    }

它可以说更容易阅读,而且可能稍快一些。

答案 1 :(得分:1)

我想你忘记了引号。尝试调用这样的函数:

displayMsg("fNameError");