我希望输入文本框的值在获得焦点时突出显示,方法是单击它或选中它。
<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中不起作用。 (注意:在字段之间进行制表时,它可以正常工作。)
答案 0 :(得分:7)
我注意到Safari实际上正在选择文本,然后快速删除选择。
所以我尝试了适用于所有浏览器的快速解决方法:
function focusTest(el)
{
setTimeout (function () {el.select();} , 50 );
}
编辑:
经过进一步测试后发现OnMouseUp事件正在清除选择,因此添加
onMouseUp="return false;"
到输入元素,让事情按原样运作。
答案 1 :(得分:0)
这里不确定特定于Safari的解决方案,但另一种方法是将输入元素包装在div中并通过CSS设置它的边框属性。然后在聚焦和未聚焦时更改边框颜色等。