2012-04-27 75 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] 
     }); 
    } 
}); 
相关问题