2015-05-07 114 views
2

我已經包含在<textarea>這樣的文字:jQuery的查找和替換文本

Hi {nom}, 

We are glad to accept your invitation. 

我需要它成爲

Hi Dolly Parton, 

We are glad to accept your invitation. 

我不希望使用任何插件,但我已經嘗試開發這種簡單的功能而沒有正反結果:

prevContent=$('textarea').val(); //alerts correctly textarea content 
content = prevContent.replace('{nom}','Dolly Parton'); 

在這種情況下,沒有替換是並且內容與prevContent具有相同的值。

這並不意味着做一個實時replacemet,它在提交表單前進行更換:

$(document).on('click','.submitMessage', function(){ 
     prevContent=$('textarea').val();  
     content = prevContent.replace('{nom}','Dolly Parton'); 

     $.post('../actions/newMessage.php',{ms_content:content}).success(

        function(data){ 
         alert("yikes");} 
    );} 
}); 

解決:這是由於可變拼寫錯誤。它的發送方式爲{nom1},而不是{nom}。抱歉給你帶來不便。

回答

7

您需要使用RegExpg標誌,因爲在你的例子只是第一{nom}將被替換:

var prevContent = $('textarea').val(); 
var content  = prevContent.replace(/\{nom\}/g, 'Dolly Parton'); 

,並更新textarea你可以使用.val,像這樣

$('textarea').val(content); 

Example

0

您只需將「content」的值賦給te xtarea,如:

$('textarea').val(content); 
+0

請檢查問題是否已更新 – Biomehanika

+0

@Biomehanika您正在'prevContent'中發佈數據?如果是,則僅將內容的值分配給prevContent或Post'content'。 – VikrantMore

+0

prevContent =「Hi {nom}」。內容必須=「Hi Dolly Parton」 – Biomehanika