2013-06-26 3 views
0

Я пытаюсь сделать что-то вроде .. При нажатии CTRL + b он должен добавить [b] и [/ b] вокруг выделенного текста. Я могу получить выделенный текст с помощью этого Javascript кода: Get the Highlighted/Selected textЗаменить строку на форуме myBB (textare) при нажатии клавиши - jQuery

Однако ... Когда я пытаюсь что-то вроде этого:

$(document).ready(function(){ 
    $('#message').on('keydown',function(e) { 
     key = e.which; 
     if(e.which == 39){ 
      str = getSelectionText(); 
      $("#message").replace(str,"[b]"+str+"[/b]"); 
     } 
    }) 
}); 

он не будет работать. Он скажет: «Объект [объект объекта] не имеет метода« replace », который является нечетным, потому что когда я делаю alert (str); он отобразит выделенный текст.

Может ли кто-нибудь сказать мне, почему? Клавиша 39 - клавиша со стрелкой вправо.

Заранее спасибо

+0

Кстати. Я просто использую 39 (клавиша со стрелкой вправо) в качестве теста. – MortenMoulder

ответ

2

Это объект JQuery, поэтому .replace не будет работать. Вам нужно добавить .val(), чтобы получить фактическое значение, тогда вы также должны установить его:

+0

Работал как шарм. Благодарю. Иногда я запутался в Javascript и jQuery! – MortenMoulder