使用PHP设置焦点并在出错时选择内容元素

时间:2014-10-26 18:48:58

标签: javascript php html forms setfocus

我想设置焦点,然后在我的页面中为多个对象类型选择内容(以及文本输入类型)。

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

  • text
  • 复选框
  • 无线电

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

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

在下面的代码$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>

验证函数放在包含PHP文件中,并根据要检查的元素及其对应的标识符(标识符对应于元素的id属性)通过引用返回自定义错误消息。如果验证不正常,那么我调用ShowError在页面中显示消息(而不是通过弹出窗口),然后通过调用SetFocus函数将焦点设置在包含错误的元素中。

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

1 个答案:

答案 0 :(得分:2)

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

这可能是你的问题。你没有引号传递$ id。