2011-08-15 59 views
1

我有一個textarea,當用戶選擇並按下Enter時,我希望它更改爲其他內容。比如我有一個textarea,當用戶選擇像紐約,我想這兩個字母更改爲紐約如何突出顯示和更改textarea的一部分

Here's a fiddle but I'm lost

我有類似:

$('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

「當用戶選擇像NY這樣的東西時,我希望這兩個字母改變爲NY。」你能澄清嗎? –

回答

0

當涉及到文本選擇時,有很多跨瀏覽器的細微差別。有幾個jQuery插件試圖解決這個問題。我建議使用a-tools。我過去曾經使用過它,它的功能與廣告一樣。

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>