2012-01-26 165 views
1

我有2個文本字段,用戶名和密碼。當我輸入密碼時,它跳到第一個。我不知道爲什麼會這樣。我無法找到它爲什麼跳。如何更改密碼錶單不跳轉?這裏是代碼:HTML輸入字段跳轉

<?php 

session_start(); 
require_once 'database.php'; 
if (isset($_SESSION['user'])){ 

echo "Welcome ".$_SESSION['user']; 

?> 

<form name="logout" method="post" action="logout.php"> 

<input type="submit" name="logout" id="logout" value="Logout"> 

</form> 

<br /><form name="news" method="post" action="news.php"> 

<input type="submit" name="news" id="news" value="News"> 

</form> 

<?php 

} 

elseif(isset($_SESSION['admin'])){ 

echo"Welcome ".$_SESSION['admin']; 

echo"<br><br>You are logged in as an Admin"; 

?> 

<form name="logout" method="post" action="logout.php"> 

<input type="submit" name="logout" id="logout" value="Logout"> 

</form> 



</form> 

<?php 

}else{ 

?> 

<form name="login_form" method="post" action="login2.php"> 

<label> 

<input name="user" type="text" id="user">ID<br /> 

<input name="pass" type="password" id="pass">Password<br /> 

</label> 

<input type="submit" name="login" id="login" action="index.php" value="Login"> 

</label> 

</p> 

</form> 

<form name="Register" method="post" action="reg.php"> 

<input type="submit" name="register" id="register" value="Register"> 

</form><br /> 

<form name="news" method="post" action="news.php"> 

<input type="submit" name="news" id="news" value="News"> 

</form> 

<?php 

} 

?> 
+1

我無法重現該問題。你觀察過哪些瀏覽器?如果您僅使用包含登錄表單的頁面進行測試,它是否仍然會發生? (代碼中有很多事情需要解決,但是我沒有看到其中的任何問題導致問題。) - 對不起,現在我發現問題是如果您*首先*單擊密碼字段(有點奇怪),那麼Firefox專注於用戶名字段(由於'label'標記錯誤)。 –

回答

2

此:

<label> 

    <input name="user" type="text" id="user">ID<br /> 

    <input name="pass" type="password" id="pass">Password<br /> 

</label> 

應該是這樣的:

<input name="user" type="text" id="user"> 
<label for="user">ID</label><br /> 
<input name="pass" type="password" id="pass"> 
<label for="pass">Password</label><br /> 
3

你有兩個輸入包裝在一個標籤。瀏覽器越來越困惑,它認爲整個內容是第一個輸入的標籤(顯然是標籤的工作方式)。您只應使用<label>來包裝輸入文字。

+0

另外他有兩個相同的名稱和ID字段。 – j08691

+0

正確的解決方案,但是,我喜歡在1(一)輸入周圍包裝'標籤',因爲擺弄不必要的ID只是爲了幫助窮人(我可能會添加它的有效用途)。但的確,從來沒有超過1. – Wrikken

+1

@Wrikken我也這樣做。我並不是故意暗示這是錯誤的。將兩個*''包裝在一起是錯誤的。 –