2010-05-18 170 views
0

我感到比較口令並確認通過Java密碼script.my代碼 -Java腳本不能正常工作

function validate_form(thisform) 
{ 
with (thisform) 
    { 
    if (validate_required(password,"<b>Error: </b>Password must be filled out!")==false) 
    {password.focus();return false;} 

    else if (validate_required(cnfpassword,"<b>Error: </b>Confirm Password must be filled out!")==false) 
    {cnfpassword.focus();return false;} 

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

validate_required()功能工作正常,它顯示警報味精,但密碼比較是不工作。但是,同樣的代碼工作正常在其他一些page.I已經寫了一些PHP代碼,以避免頁面caching-

<?php 
session_start(); 
session_cache_limiter('nocache'); 
header('Pragma: no-cache'); 
?> 

什麼問題???

+0

如果您向我們顯示密碼輸入窗體的HTML,它可能會有所幫助。無論是工作頁面還是非工作頁面。 – 2010-05-18 19:08:48

+0

爲什麼你有如果子句做了比較假?它已經是一個布爾值,你可以不讓它產生一個真正的if子句。 – unholysampler 2010-05-18 19:09:51

+0

** javascript ** - 如在「我的JavaScript代碼片段不工作」。不是「我的Java腳本不工作」。這意味着你正在編寫一個腳本,用java(這有點奇怪)。對不起 - 寵壞了。 – Cam 2010-05-18 19:12:52

回答

1

奇怪的代碼!

什麼是

with (thisform) 

嗎? 它允許在當前範圍內有密碼和cnfpassword嗎?

如果是這樣,你爲什麼不這樣做:

else if (password.value != cnfpassword.value) 

除此之外,我建議您驗證PHP中的表單。

+0

https://developer.mozilla.org/index.php?title=En/Core_JavaScript_1.5_Reference/Statements/ With – Cam 2010-05-18 19:13:30

+1

'with'通常被認爲是一個永遠不應該使用的JavaScript錯誤。不幸的是,w3schools上的血腥可怕示例代碼使用它,這就是爲什麼我們不斷看到這個醜陋而完全沒有意義的'validate_required'函數一次又一次地出現。死,w3schools,死亡。 – bobince 2010-05-18 20:04:01

1

它可能與價值本身有關;你有一個JavaScript調試器來幫助你逐步瞭解錯誤發生的位置嗎?如果您使用的是Firefox,我推薦使用插件Firebug

0

確保表單輸入ID是正確的(密碼和cnfpassword)。 也如果是這樣,你可以嘗試改變

if (document.getElementById('password').value != document.getElementById('cnfpassword').value) 

if (password.value != cnfpassword.value)