php - PHP验证后如何自动将光标聚焦在输入字段上

标签 php html forms

如何在 PHP 验证后自动将光标聚焦在输入字段上。如果用户输入的答案不正确,我想在页面加载时关注该字段。

我是 PHP 新手。我如何在 PHP 中执行此操作?

联系表:

<form method="post" action="<?php htmlspecialchars($_SERVER["PHP_SELF"]);?>">
    <fieldset style="width:960px; background-color:#FFF; border-radius:10px; padding:50px;">
        <legend><h2>Contact Us</h2></legend>
        <br />
        <fieldset style="border-radius:10px; padding:50px 0px 50px 50px;;";>
            <div style="width:275px; height:300px; float:right; padding:30px"><img src="images/contactus.jpg" width="275" height="300" alt="contactus" /></div>
            <label>Name:</label>
            <input class="txt" type="text" name="name" value="<?php echo isset($_POST['name']) ? htmlentities($_POST['name']) : ''; ?>"/><span class="error"><?php echo $nameErr?></span><br /><br />
            <label>Email:</label>
            <input class="txt" type="text" name="email" value="<?php echo isset($_POST['email']) ? htmlentities($_POST['email']) : ''; ?>"/><span class="error"><?php echo $emailErr?></span><br /><br />
            <label>Mobile No:</label>
            <input class="txt" type="text" name="mobileno" value="<?php echo isset($_POST['mobileno']) ? htmlentities($_POST['mobileno']) : ''; ?>"/><span class="error"><?php echo $mobilenoErr?></span><br /><br />
            <label>Message:</label>
            <textarea class="txt" name="message"rows="5"><?php echo $message?></textarea><span class="error"><?php echo $messageErr?></span><br /><br />
            <input style="margin-left:100px; padding:5px 20px 5px 20px; border-radius:5px" type="submit" value = "Submit" />
        </fieldset>
    </fieldset>
</form>

PHP 中的联系表单验证:

<?php
if(isset($_POST['name']))
{
    include_once("config.php");

    $name=$email=$mobileno=$message=="";
    $nameErr=$emailErr=$mobilenoErr=$messageErr="";

    function test_input($data)
    {
        $data=trim($data);
        $data-stripslashes($data);
        $data=htmlspecialchars($data);
        return $data;
    }

    if($_SERVER['REQUEST_METHOD']=="POST")
    {
        $valid=true;

        //name validaton
        if(empty($_POST["name"]))
        {
            $nameErr="* Name is Required";
            $valid=false;
        }
        else
        {
            $name=test_input($_POST["name"]);
            if (!preg_match("/^[a-zA-Z ]*$/",$name))
            {
                $nameErr = "&nbsp;&nbsp;Only letters and white space allowed";
                $valid=false;
            }
        }

        //Email Address validaton
        if(empty($_POST["email"]))
        {
            $emailErr="* Email is Required";
            $valid=false;
        }
        else
        {
            $email=test_input($_POST["email"]);
            if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
            {
                $emailErr="&nbsp;&nbsp; Enter a valid Email ID";
                $valid=false;
            }
        }

        //Mobile no validaton
        if(empty($_POST["mobileno"]))
        {
            $mobilenoErr="* Mobile no is Required";
            $valid=false;
        }
        else
        {
            $mobileno=test_input($_POST["mobileno"]);
            if(!preg_match("/^(\d[\s-]?)?[\(\[\s-]{0,2}?\d{3}[\)\]\s-]{0,2}?\d{3}[\s-]?\d{4}$/i",$mobileno))
            {
                $mobilenoErr="*Enter a valid contact no";
                $valid=false;
            }
        }

        //bank name validation
        if(empty($_POST["message"]))
        {
            $messageErr="* Message is Required";
            $valid=false;
        }
        else
        {
            $message=test_input($_POST["message"]);
        }
    }

    if($valid)
    {
        echo "Send mail code";
    }
}
?>

最佳答案

您可以尝试自动对焦(http://diveintohtml5.info/forms.html):

<input class="txt" type="text" name="name" 
   value="<?php echo isset($_POST['name']) ? htmlentities($_POST['name']) : ''; ?>"
   <?php if(!empty($nameErr)) { ?> autofocus <?php } ?>
/>

<span class="error"><?php echo $nameErr?></span><br /><br />

关于php - PHP验证后如何自动将光标聚焦在输入字段上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22140034/

相关文章:

php - 使用相同的 php 表单添加/查看/编辑 mysql 条目

php - 设置默认用户名并与 ID 连接

html - 将带有 CSS 的 HTML 转换为带有行内样式的 HTML

php - PDO Prepared stament while in a loop

php - 个人项目: using while loops

javascript - 如何在固定大小的容器中根据其下方内容的大小调整图像高度

javascript - 如何为 AngularJS 表单编写通用错误处理程序

php - PDO 形式仅添加主键

php - Laravel 中的分页返回表值,但不是 paginate() 的所有值

php - 原则 2 - 如何在多个 addSelect 中添加限制