我有一个文本框和一个链接按钮。当我写一些文本时,然后选择其中一些,然后单击链接按钮,必须在文本框中显示一个带有消息框的文本。
我该怎么做?
当我单击下面的文本框的“提交”按钮时,消息框必须显示Lorem ipsum。因为在该区域中选择了“ Lorem ipsum”。
如果我从页面中选择任何文本并单击“提交”按钮,则该文本有效,但如果我将文本写入文本框并使其成功,则无效。因为当我单击到另一个空间时,文本框的选择被取消。
现在的问题是,当我从文本框中选择一个文本并单击任何其他控件或空格时,仍必须选择选定的文本。
怎么做?
好的,这是我的代码:
function ShowSelection() { var textComponent = document.getElementById('Editor'); var selectedText; if (textComponent.selectionStart !== undefined) {// Standards Compliant Version var startPos = textComponent.selectionStart; var endPos = textComponent.selectionEnd; selectedText = textComponent.value.substring(startPos, endPos); } else if (document.selection !== undefined) {// IE Version textComponent.focus(); var sel = document.selection.createRange(); selectedText = sel.text; } alert("You selected: " + selectedText); }
问题是,尽管我为IE提供的代码在许多站点上都有提供,但我无法使其在我当前系统上的IE6副本上正常工作。也许它将对您有用,这就是为什么我给它。 您寻找的技巧可能是.focus()调用,它可以将焦点返回给textarea以便重新激活选择。
[更新]我通过onKeyDown事件得到了正确的结果(选择内容):
document.onkeydown = function (e) { ShowSelection(); }
所以代码是正确的。同样,问题是单击按钮即可获得选择…我继续搜索。
[更新]使用li标记绘制的按钮没有成功,因为当我们单击它时,IE会取消选择先前的选择。上面的代码使用一个简单的input按钮即可,但是…
li
input