2011-04-19 81 views
1
<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容器中顯示數據來執行驗證。

但這些代碼顯示我未professionl工作..我真的很討厭這個......所以我試圖定義新的功能,即在店內的錯誤消息咬它不工作以及..

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; 
} 

所以請您幫我找出並給我一些提示,使我的代碼更專業和良好的。

+1

你可以嘗試使用流行的JavaScript庫jQuery(http://jQuery.com),它有很多可以用於各種常見Web開發需求的插件。有一個很好的jQuery驗證插件,可以讓你的代碼變得更小更優雅。 – 2011-04-19 11:26:42

+0

謝謝。但即時通訊學習Javascript這就是爲什麼即時通訊只使用Javascript來建立一個驗證表格 – Muzammil 2011-04-19 11:43:17

回答

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"; 
    } 

這可以說是簡單閱讀並可能稍快。

+0

感謝您的快速反應,我已經嘗試了您的代碼,它給予了積極的迴應,但它只顯示輸入字段中的紅色,並沒有顯示錯誤信息。如果(getValues [1] .value =='') – Muzammil 2011-04-19 11:34:59

+0

'code'else if { document.getElementById('fName')。style.backgroundColor ='#FFD2D2'; displayMsg(「fNameError」); 返回false; }那樣 – Muzammil 2011-04-19 11:36:51

+0

不顯示「字段是空的」消息?你最好使用'.setText()'而不是'.innerHTML',因爲後者被認爲是不好的做法。 – 2011-04-19 11:36:57

1

我想你忘了引號。嘗試調用這樣的函數:

displayMsg("fNameError"); 
+0

謝謝你..我已經試過這個 – Muzammil 2011-04-19 11:50:18