2012-08-29 55 views
-1

我創建了一個登錄頁面,該頁面有一個登錄表單,用於向loginproc.php提交用戶名和密碼,以檢查其有效性,並且所有工作都完美無缺。無論如何,在登錄頁面上,我編寫了一個JavaScript函數,用於在用戶名和密碼字段爲空時提醒用戶。完成之後,JavaScript工作正常,但是當我單擊提交按鈕時絕對不會發生任何事情!使用javascript後提交按鈕無法正常工作

----------------------------------------這是JavaScript-- --------------------

<script type='text/javascript'> 

function formValidator(){ 
    // Make quick references to our fields 
    var username = document.getElementById('username'); 
    var password = document.getElementById('password'); 


    // Check each input in the order that it appears in the form! 
    if(notEmpty(username, "The username field is empty!")){ 
     if(notEmpty(password, "The password is empty!")){ 

     } 
    } 

    return false; 

} 

function notEmpty(elem, helperMsg){ 
    if(elem.value.length == 0){ 
     alert(helperMsg); 
     elem.focus(); // set the focus to this input 
     return false; 
    } 
    return true; 
} 
</script> 

----------------------- -----------------這是表格----------------------

<form method="post" action="loginproc.php" onsubmit="return formValidator()" > 


<tr><td colspan="3"><img src="icons/login.jpg" alt="Edugate" width="366" height="123"></td></tr> 
<tr><td colspan="3" nowrap bgcolor="#990033" class="infoTitle"><div align="center"></div></td></tr> 
<tr><td colspan="3" nowrap class="infoTitle"><div align="left">user login </div></td></tr> 
<tr><td colspan="3" nowrap bgcolor="#990033" class="infoTitle"><div align="center"></div></td></tr> 
<tr><td width="58">Username</td> 
<td width="4">:</td> 
<td width="297"><input type="text" id="username" name="username" size="20"></td></tr> 
<tr><td>Password</td><td>:</td><td><input type="password" id="password" name="password" size="20"></td></tr> 
<tr><td>&nbsp;</td><td>&nbsp;</td><td><input type="submit" class="BtnInTable" value="Login"></td></tr> 
<?php if ($error == 1) 
print "<tr><td colspan='3' class='ppos'><img src='icons/error.png' alt='error'> Icorrect usename or password...</td></tr>";?> 
<tr><td colspan="3" nowrap bgcolor="#990033" class="infoTitle"><div align="center"></div></td></tr> 
</form> 

請問,任何人都可以引導我。在advace謝謝

+1

你的格式是可怕的..更好的學習一些基本的HTML格式化它你打算寫的頁面,你可能會改變某些時間未來,或別人將不得不讀/寫..看看http://www.w3.org/TR/html-markup/ – Kuf

回答

2

你忘了return true;,否則它會去return false;

// Check each input in the order that it appears in the form! 
    if(notEmpty(username, "The username field is empty!")){ 
     if(notEmpty(password, "The password is empty!")){ 
       return true; 
     } 
    } 
+0

謝謝你解決它。 但是,你可以進一步向我解釋因爲我有點新的編程.. – user1631838

+0

當你用'return'函數捕獲'onsubmit'時,該函數必須返回true或false以使腳本工作。你檢查了用戶名和密碼,如果他們不是空的,你沒有發送任何回報,而是有一個錯誤的底部回報。要繼續發送表單,您需要發送給我們。正如你在'notEmpty'中看到的那樣,如果elem.value.length == 0,它們都返回false,否則返回true。 –

+0

ah okkk:D我明白了。 thnxx! – user1631838

1

你的formValidator()總是返回false,如果你向onsubmit返回false,它將不會提交。 如果一切都有效,一定要返回true。

+0

哦,好的,謝謝,我知道了,我知道了這個概念 – user1631838

1

繼承人問題.. 此函數只返回FALSE。 沒有返回真正的聲明.. 表單提交,「onsubmit」應該返回true :)

+0

thnxxxxx這麼多,我明白了這個概念。 – user1631838

+0

沒問題:)。你應該選擇一個最佳答案,並通過投票:)。 –