Php HTML输入字段跳转
我有两个文本字段,用户和密码。当我输入密码时,它跳到第一个。我不知道为什么会这样。我不知道它为什么要跳。如何更改它以使密码表单不会跳转?代码如下:Php HTML输入字段跳转,php,html,forms,Php,Html,Forms,我有两个文本字段,用户和密码。当我输入密码时,它跳到第一个。我不知道为什么会这样。我不知道它为什么要跳。如何更改它以使密码表单不会跳转?代码如下: <?php session_start(); require_once 'database.php'; if (isset($_SESSION['user'])){ echo "Welcome ".$_SESSION['user']; ?> <form name="logout" method="post" action="
<?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
}
?>
ID
密码
将两个输入包装在一个标签中。浏览器正在变得混乱,它认为整个内容是第一次输入的标签(显然,标签就是这样工作的)。您应该只使用
包装输入文本。您将两个输入包装在一个标签中。浏览器正在变得混乱,它认为整个内容是第一次输入的标签(显然,标签就是这样工作的)。您应仅使用
包装文本以供输入。此:
<label>
<input name="user" type="text" id="user">ID<br />
<input name="pass" type="password" id="pass">Password<br />
</label>
ID
密码
应该是这样的:
<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 />
ID
密码
这是:
<label>
<input name="user" type="text" id="user">ID<br />
<input name="pass" type="password" id="pass">Password<br />
</label>
ID
密码
应该是这样的:
<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 />
ID
密码
另外,他有两个同名id的字段。正确的解决方案是,我喜欢在1(一)个输入周围加上标签,因为摆弄不必要的id对可怜的老我来说太麻烦了(我可能会加上它)。但事实上,永远不要超过1。@Wrikken我也这么做。我不是有意暗示那是错的。。包装两个
s是错误的。好吧,“仅用于包装输入文本”让我当时感到困惑,很高兴澄清这一点;)@j08691具有相同名称和id的两个字段在唯一的条件内。另外,他有两个具有相同名称和id的字段。正确的解决方案,但是,我喜欢在1(一)个输入周围加上标签
,因为摆弄不必要的id对可怜的老我来说太麻烦了(我可能会添加它的有效用途)。但事实上,永远不要超过1。@Wrikken我也这么做。我不是有意暗示那是错的。。包装两个
s是错误的。好吧,“仅用于包装输入文本”让我当时感到困惑,很高兴澄清这一点;)@j08691具有相同名称和id的两个字段处于唯一条件内。我无法重现此问题。您在哪个浏览器上观察到它?如果仅使用包含登录表单的页面进行测试,是否仍然会发生这种情况?(代码中有很多问题需要解决,但我不认为它们中的任何一个会导致问题。)–抱歉,现在我发现问题是,如果您首先单击密码字段(有点奇怪),那么Firefox会关注用户名字段(由于错误的标签标记)。我无法重现问题。您在哪个浏览器上观察到它?如果仅使用包含登录表单的页面进行测试,是否仍然会发生这种情况?(代码中有很多问题需要解决,但我不认为其中任何一个是导致问题的原因。)–抱歉,现在我发现问题在于,如果您首先单击密码字段(有点奇怪),那么Firefox会关注用户名字段(由于错误的标签标记)。