возникли проблемы с вызовом функции внутри другой функции - PullRequest
1 голос
/ 19 апреля 2011
<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 ]

1 голос
/ 19 апреля 2011

Я думаю, что вы забыли кавычку. Попробуйте вызвать функцию так:

displayMsg("fNameError");
1 голос
/ 19 апреля 2011

Возможно, вы просто пропускаете цитаты из примерно 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";
    }

Возможно, его легче читать и, возможно, немного быстрее.

...