javascript - 使用 PHP 设置焦点并选择错误的内容元素

标签 javascript php html forms setfocus

我想设置焦点,然后为页面中的多种对象类型选择内容(如果是文本输入类型)。

在我的表单中,我有这些类型的对象:

  • 文本
  • 复选框
  • 广播

以及选择对象(这是一个下拉列表)。

我有一个包含这些对象的表单以及一个提交按钮。提交时,我对字段进行一一验证。如果我发现错误,我想将焦点设置在该对象上,所以我这样做:

在下面的代码中$id是对象的标识符,即 id属性。我的 PHP 页面的代码片段:

<?php

    (...)

    function SetFocus($id)
    {
        echo "Setting focus to: " . $id . "#";
        echo "<script type='text/javascript'>";
        echo "var elem = document.getElementById($id);";
        echo "elem.focus();";
        echo "elem.select();";
        echo "</script>";
    }

    (...)
?>

<form ........>

       <input name="personName" type="text" id="personName">

       (...)

        <?php               

                (...)

                $errMsg = "";
                $id = "";

                if (!Validate($errMsg, $id))
                {
                    ShowError($errMsg);
                    SetFocus($id);
                }

                (...)

        ?>

   (...)

</form>

Validate函数被放置在一个包含PHP文件中,它根据被检查的元素及其对应的标识符(标识符对应于元素的id属性)通过引用返回自定义错误消息。如果验证失败,我会调用 ShowError在页面内显示消息(不是通过弹出窗口),然后我通过调用 SetFocus 将焦点设置在包含错误的元素中功能。

我的问题是SetFocus功能不起作用。出错的元素没有处理焦点,也没有被选择。

最佳答案

//echo "var elem = document.getElementById($id);";
echo "var elem = document.getElementById('".$id."');";

这可能是你的问题。您传递的 $id 不带引号。

关于javascript - 使用 PHP 设置焦点并选择错误的内容元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26576617/

相关文章:

html - Bootstrap 中两行下方的巨大空间

javascript - 单击此子项中的链接添加关闭功能

javascript - 将 Piwik 用于单页应用程序

javascript - 完整性检查 : Rhino does not have a require function, 对吗?

php - LIKE MySQL 查询的问题

php - 如何将 MYSQL 结果与 PHP 合并以获得漂亮的表格

javascript - 如何将 HTML 字符串作为 DOM 元素从 Flask 应用程序传递到 HTML 模板,然后 appendChild

javascript - react 设置状态回调传递参数的正确方法

javascript - 如何在 FeathersJS 服务扩展中使用 app.service ('myService' )?

javascript - PHP Ajax 调用以清除并填充下拉菜单