4

我希望输入文本框的值在获得焦点时突出显示,无论是通过单击它还是通过 Tab 键。

<html>
<body>

<script>
function focusTest(el)
{
   el.select();
}
</script>

<input type="text" value="one" OnFocus="focusTest(this); return false;" />
<br/>
<input type="text" value="two" OnFocus="focusTest(this); return false;" />

</body>
</html>

在 Firefox 或 IE 中单击任一输入字段时,该字段将突出显示。但是,这在 Safari 中不起作用。(注意:它在字段之间切换时有效。)

4

2 回答 2

7

我注意到 Safari 实际上是在选择文本然后快速删除选择。

所以我尝试了这个适用于所有浏览器的快速解决方法:

function focusTest(el)
{
  setTimeout (function () {el.select();} , 50 );
}

编辑:
经过进一步测试,事实证明 OnMouseUp 事件正在清除选择,因此足以添加

onMouseUp="return false;"

到输入元素,以使事情按应有的方式工作。

于 2008-11-11T20:17:34.867 回答
0

不确定此处是否有特定于 Safari 的解决方案,但另一种方法是将输入元素包装在 div 中并通过 CSS 设置它的边框属性。然后在聚焦和不聚焦时更改边框颜色等。

于 2008-11-11T19:52:18.333 回答