我想设置焦点,然后在我的页面中为多个对象类型选择内容(以及文本输入类型)。
在我的表格中,我有这些类型的对象:
以及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
功能不起作用。出错的元素没有处理焦点,也没有选择。
答案 0 :(得分:2)
//echo "var elem = document.getElementById($id);";
echo "var elem = document.getElementById('".$id."');";
这可能是你的问题。你没有引号传递$ id。