【发布时间】:2013-12-02 17:53:46
【问题描述】:
我已经对这个听起来很简单的问题进行了几天的研究,但我没有看到任何结果。
简而言之,我的问题如下:我想在某个输入字段中选择文本,将焦点移动到另一个字段(或一般来说其他一些元素),但不会丢失我选择的文本。
这种情况可能对应于我在字段中选择文本,右键单击并显示自定义弹出菜单,但不希望失去所选文本的焦点的用例,因为我想做一些操作在之前选择的文本上。
一个小的代码测试示例将是(对于我最初的简单场景 - 这里我在第二个输入字段获得焦点时强制选择文本):
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<input type="text" id="text1" size="20" value="Test1"/>
<input type="text" id="text2" size="20" value="Test2"/>
<script>
$('#text2').focus( function (evt) {
var target = $('#text1')[0];
target.select();
console.log('active/focused element: ' + document.activeElement.id);
});
</script>
</body>
</html>
我一直在搜索 SO 和网络以寻找解决方案,但没有看到太多帮助。
我不确定这是否真的可能(由于模糊和选择丢失以及焦点和选择之间的联系)。我在another SO answer 中看到了一个名为preventDeselect 的样式属性 - 这不起作用,我什至没有这样的文档或浏览器支持。
我在这方面很挣扎,希望得到一些帮助:甚至说我根本无法做到这一点,或者可能还有一些路要走。
更新: 仅作记录,我的用户场景,即文本选择和上下文菜单,是一个常见的场景(我没有想到):只需在此页面(或输入类型字段)中选择一些文本并右键单击即可获取浏览器的默认上下文菜单 - 我的场景不同,因为我想使用自定义菜单,但与浏览器的上下文菜单具有相似的行为 - 通常允许选择一些文本,剪切/复制选择,在上下文菜单中导航不会丢失选定的文本。所以我认为应该有可能以某种方式:) 使用上下文菜单完成所有这些操作,并且仍然可以选择。
【问题讨论】:
-
你的意思是即使在失去焦点后你也想要文本框的值
-
是的,如果我跳过或误用了某些术语,请见谅;试图尽可能接近用户场景/视角来表达这一点。
标签: javascript jquery html css