2012-04-27 34 views
0

我已成功使用以下腳本來獲取在textarea中突出顯示的預定義文本。 http://www.strangeplanet.fr/work/jquery-highlighttextarea/根據用戶給定關鍵字突出顯示textarea

如何讓預定義的文本在運行中被更改?例如。用戶在特定輸入框中寫入「綠色」,然後在textarea中突出顯示「綠色字詞」?

+1

看來,這個插件有沒有「更新」 API方法,就這麼簡單重新初始化上'更改'事件,如@F。 Calderan說,應該工作。 – VisioN 2012-04-27 07:37:06

回答

0
$("#input-id").bind('keypress',function() { 
    var word = $(this).val(); 
    if (word) { 
     $("textarea").highlightTextarea({ 
      words: [word] 
     }); 
    } 
}); 
+0

當你點擊任何鍵時它會重新插入兩次插件嗎? – VisioN 2012-04-27 08:14:01

+0

@Vision給它一個嘗試..我想不.. – coolguy 2012-04-27 08:22:01

+0

是的,http://jsfiddle.net/Mh49B/。 – VisioN 2012-04-27 08:23:19

1

也許你可以嘗試像

<input type="text" id="wordtohighlight"> 
<textarea>lorem ipsum green sit dolor amet green</textarea> 

JS/jQuery的

$('#wordtohighlight').on('change', function() { 
    var v = $(this).val(); 
    $("textarea").highlightTextarea({ 
     words: [v] 
    }); 
} 

有了這段代碼調用插件時輸入的變化(例如,當input text失去焦點/你點擊別處頁面)。如果您願意,您可以嘗試使用keyup事件

0

掛鉤到輸入框的keydown事件並更改單詞數組。

我從來沒用過你鏈接到jQuery插件,但這樣的事情應該工作:

$("#target").keydown (function() { 
    $("textarea").highlightTextarea({ 
      words: [$(this).val()] 
    }); 
}); 
+0

也許'keyup'更好。 – VisioN 2012-04-27 07:45:01

0
$("#input-id").keydown (function() { 
    var word = $(this).val(); 
    if (word) { 
     word += '-words'; 
     $("textarea").highlightTextarea({ 
      words: [word] 
     }); 
    } 
});