2013-02-25 122 views
0

我有以下的HTML表單之前GET請求發送密碼匹配使用JS完成,但JS不工作Java腳本不執行

<html> 
<title>Login System</title> 
<head> 
<script type="text/javascript"> 
function match() 
{ 
var s1=document.getElementById('t4').value; 
var s2=document.getElementById('t5').value; 
if (s1 == s2) 
{ 
alert('yep'); 
} 
else 
{ 
alert('Passwords Does not Match'); 
} 
} 
</script> 
</head> 
<style type="text/css"> 
div.ex { 
width:220px; 
padding:10px; 
border:5px solid gray; 
margin:10px; 
} 
</style> 

<body> 
<div class="ex"> 
<strong>User Login</strong> 
<form name=f1 method=get action="http://localhost:8080/login"> 
User &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type=text name=t1><br> 
Password <input type=password name=t2><br> 
<input type=submit name=sub value="Login"> 
</form> 
</div> 
<div class="ex"> 
<strong>User Registration</strong> 
<form name=f2 method=get action="http://localhost:8080/login"> 
User Name &nbsp&nbsp&nbsp&nbsp&nbsp<input type=text name=t3><br> 
Password <input type=password name=t4><br> 
Password <input type=password name=t5><br> 
<input type=submit name=sub value="reg" onclick='match();'> 
</form> 
</div> 

</body> 
</html> 
+0

它可能是最好的'==='來比較你的密碼。你還有什麼錯誤? – cclerville 2013-02-25 05:04:46

+0

如果's1!= s2',您需要防止事件進一步處理。 – Passerby 2013-02-25 05:05:56

+0

@cclerville沒有錯誤,servlet在沒有密碼檢查的情況下執行,並且根本沒有任何提示框 – techno 2013-02-25 05:06:04

回答

3

getElementById會查找id財產,而不是name正如你上面所用的那樣。

變化:

Password <input type=password name=t4><br> 

Password <input type=password name=t4 id='t4'><br> 
+1

它仍然需要用於提交的名稱屬性。 – Musa 2013-02-25 05:07:35

+0

哦,編輯 – ericosg 2013-02-25 05:09:26

1

這是因爲您剛纔給然後name屬性

Password <input type=password name=t4><br> 
Password <input type=password name=t5><br> 

讓它

Password <input type=password name=t4 id=t4><br> 
Password <input type=password name=t5 id=t5><br> 

同時提供nameid是一個好習慣。幫助你和它不會失敗:)
由於JS將採取id(如您的代碼)和request對象將採取name

0

試試這個:

<html> 
<title>Login System</title> 
<head> 
<script type="text/javascript"> 
function match() 
{ 
    var s1=document.getElementById('t4').value; 
    var s2=document.getElementById('t5').value; 

    if(s1!="" && s2!="") 
    { 
     if (!(s1 == s2)) 
     { 
      alert('Passwords does not Match'); 
      return false; 
     } 
    } 
    else 
    { 
     alert("Please enter password"); 
     return false; 
    } 
} 
</script> 
</head> 
<style type="text/css"> 
div.ex { 
    width:220px; 
    padding:10px; 
    border:5px solid gray; 
    margin:10px; 
} 
</style> 

<body> 
    <div class="ex"> 
     <strong>User Login</strong> 
     <form name=f1 method=get action="http://localhost:8080/login"> 
      User &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type=text name=t1><br> 
      Password <input type=password name=t2 /><br /> 
      <input type=submit name=sub value="Login" /> 
     </form> 
    </div> 
    <div class="ex"> 
     <strong>User Registration</strong> 
     <form name=f2 method=get action="http://localhost:8080/login" onsubmit="return match();"> 
     User Name &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=text name='t3' id='t3'><br> 
     Password <input type=password name='t4' id='t4' /><br /> 
     Password <input type=password name='t5' id='t5' /><br /> 
     <input type=submit name=sub value="reg" /> 
</form> 
</div> 

</body> 
</html> 
0

您也可以通過不chanidn試試這個文本框只改變以下代碼

var s1=document.getElementByName('t4'); 
var s2=document.getElementByName('t5'); 

這也將幫助您獲得這些值。