jquery函数替换textarea文本不起作用

时间:2013-05-14 14:05:07

标签: javascript jquery textarea

我不习惯使用jquery,所以任何帮助都会受到赞赏。 我写过这个函数但是无法让它工作,任何人都可以告诉我出了什么问题。

$(function() {
   $('#replace_button').onclick(function() {
     $('#box_txt').val().replace(/\t/g, '[TAB]');
     $('#box_txt').val().replace(/\n/g, '[BREAK]');
   });
});

随附的HTML是

<textarea name='box_txt' id='box_txt' rows='6' cols='50'></textarea>
  <br>
  <input type='button' id='replace_button' value='Replace'>

当我按下按钮时,我只想用[TAB]替换所有标签,用[BREAK]替换所有换行符。

非常感谢。

2 个答案:

答案 0 :(得分:4)

val返回一个字符串,而不是一种指向该值的指针。并且replace不会更改您传递的字符串(字符串在JavaScript中是不可变的)但返回一个新字符串。

您可以使用

var field = $('#box_txt'), s = field.val();
s = s.replace(/\t/g, '[TAB]').replace(/\n/g, '[BREAK]');
field.val(s);

Demonstration

答案 1 :(得分:0)

是这样的:

$(function() {
       $('#replace_button').onclick(function() {
         $('#box_txt').val($('#box_txt').val().replace(/\t/g, '[TAB]'));
         $('#box_txt').val($('#box_txt').val().replace(/\n/g, '[BREAK]'));
       });
    });

你得到的值操纵它但从未在textarea中设置它: - )