2010-05-16 54 views
-1

我已經在html頁面中添加了一些javascript輸入validation.same頁面在IE和Chrome中正常工作,但在mozila其不工作。問題是,當用戶輸入無效數據顯示警報味精盒,當用戶點擊OK它應該返回形成...... mozila不是等着警告框它只是顯示警告框5-6秒,然後進入到下一頁中定義的form action =「nextpage.php」java腳本不工作在mozila

function validate_form(thisform) 
    { 
    with (thisform) 
     { 
     if (validate_required(oldpassword, "<b>Error: </b>Please enter the Old Password!") == false) 
     { changeColor("oldpassword"); return false; } 

     else if (valid_length(newpassword, "<b>Error: </b>Please enter the New Password!!") == false) 
     {newpassword.value=""; changeColor("newpassword"); return false; } 

     else if (valid_length(cnfpassword, "<b>Error: </b>Please enter the Confirm Password!!") == false) 
     {cnfpassword.value=""; changeColor("cnfpassword"); return false; } 

     else if (document.getElementById('newpassword').value != document.getElementById('cnfpassword').value) 
     {changeColor("newpassword");cool.error("<b>Error: </b>Passwords entered are not same!"); 
     newpassword.value="";cnfpassword.value="";return false;} 

    } 
}function validate_required(field, alerttxt) 
    { 
    with (field) 
     { 
     if (value == null || value == "") 
      { 
      cool.error(alerttxt);return false; 
      } 
     else 
      { 
      return true; 
      } 
     } 
    } 

cool.error無非是CSS次的js警報box.I事情沒有我代碼天氣問題的任何問題在一些瀏覽器settings.Is會這樣???因爲它工作正常IEChrome

+3

作爲一般說明在這裏,不要假設錯誤是**不在你的代碼**,99.9999%的時間,至少在已建立的平臺上,**它是你的代碼**,假設相反將不會做任何事情但浪費時間找到原因。 – 2010-05-16 19:56:55

+0

作爲另一個不是你可能想看看一些jQuery驗證插件可能會節省一些時間 – mcgrailm 2010-05-16 20:00:11

回答

4

您正在使用非標準的僅限IE的行爲,它爲每個帶有ID的元素創建全局變量。

爲了解決這個問題,添加一個全局變量使用的每個元素:

var oldpassword = document.getElementById("oldpassword"); 

此外,你應該從未使用JavaScript的with塊。
它與VB的with區塊截然不同,除非您真正理解其缺陷和缺陷,否則不應使用。它也會減慢你的代碼。

+1

對不起,我沒有得到你...你可以解釋更多... – nectar 2010-05-16 19:57:03

+0

添加行,如'var oldpassword = document.getElementById(「 oldpassword「);'在Javascript中使用的每個HTML元素的函數之外。 – SLaks 2010-05-16 20:01:25

+0

或者'myformobject.elements.oldpassword',如果你只使用名字。但使用ID更容易。 – bobince 2010-05-16 20:11:27

0

您也可以使用一些JavaScript庫來獲取瀏​​覽器問題。我生根於jQuery。

+1

可以用jquery作爲javascript進行驗證嗎? – nectar 2010-05-16 20:28:17