我有一个textarea,当用户选择并按下输入时,我希望它更改为其他内容。例如,我有一个textarea,当用户选择像NY这样的东西时,我希望这两个字母改为NY
我有类似的东西:
$('textarea').html('I live in NY and it\'s a great place to live');
$(window).click(function(){
var selection = selectedText();
console.log(selection);
});
function selectedText() {
var ret = '';
if (window.getSelection){
ret = window.getSelection();
} else if (document.getSelection) {
ret = document.getSelection();
} else if (document.selection) {
ret = document.selection.createRange().text;
}
return ret;
}
我不知道在哪里查看它是来自textarea还是来自其他地方,而且我不知道如何更改textarea文本的特定部分
答案 0 :(得分:0)
这可能会对您有所帮助:
Finding selection start and end position in a textarea
此外,我刚测试了它并且它可以工作(它返回所选文本,因此您可以修改它并将值分配回textarea
参考:http://www.codingforums.com/showpost.php?p=235174&postcount=5
<script type="text/javascript">
<!--//
function selectedText(input){
if(document.selection && document.selection.createRange().text != ''){ // IS IE
alert(document.selection.createRange().text);
}
else{ // Not IE.. assume Mozilla?
var startPos = input.selectionStart;
var endPos = input.selectionEnd;
alert(input.value.substring(startPos, endPos))
}
}
//-->
</script>
</head>
<body>
<form name="reportForm">
<textarea name="report">this is a test</textarea>
<button onclick="selectedText(this.form.report)">Alert Selection</button>
</form>
答案 1 :(得分:0)
在文本选择方面,有很多跨浏览器的细微差别。有几个jQuery插件试图解决这个问题。我建议使用a-tools。我过去曾经使用过它,它就像宣传的一样。