用jquery或javascript替换textareas中的逗号

时间:2011-08-17 09:37:12

标签: javascript jquery

我有一个包含多个文本区域的表单。

<textarea name="datasetname_1" cols="40" rows="5" id="datasetname_1" class="validate[required] text-input"></textarea><br>
<textarea name="datasetname_2" cols="40" rows="5" id="datasetname_2" class="validate[required] text-input"></textarea><br>
<textarea name="datasetname_3" cols="40" rows="5" id="datasetname_3" class="validate[required] text-input"></textarea><br>

我想用破折号替换任何包含逗号的文本。这适用于直接在文本区域中粘贴的文本或粘贴的文本。在提交表单之前应该替换文本。我怎样才能用jquery或javascript来完成这个?

我试过这个

    $("#formID").submit(function() {
  $("textarea").each(function() {
($(this).val().replace(',','-'));
  });
  });

没有运气。

3 个答案:

答案 0 :(得分:5)

$(this).val().replace(',','-');

将获取值,用连字符替换一个逗号,然后不执行任何操作,因为您没有将值存储到变量中。

相反,您可以使用:

  1. $(this).val('some value');实际设置值。
  2. 使用正则表达式替换所有出现的内容。
  3. (正确地缩进你的代码通常会有很多帮助。)
  4. 例如:http://jsfiddle.net/pimvdb/HsFbN/

    $("#formID").submit(function() {
      $("textarea").each(function() {
        $(this).val($(this).val().replace(/,/g, "-"));
      });
    });
    

    jQuery是否应该用于所有内容是有争议的,但你也可以在这里省略它:

    $("#formID").submit(function() {
      $("textarea").each(function() {
        this.value = this.value.replace(/,/g, "-");
      });
    });
    

答案 1 :(得分:1)

可以试试这个:

  $("textarea").each(function(){
      var text = $(this).val();
      $(this).val($(text).replace(',','-'));
  });

答案 2 :(得分:1)

$(this).val().replace(',','-')

只获取值并返回包含替换文本的字符串。但它不会分配到任何地方。你想要的可能就是:

// jQuery
$textarea = $(this); // just so we don't build a jQuery object twice
$textarea.val($textarea.val().replace(/,/g, "-"));

// vanilla JS
this.value = this.value.replace(/,/g, "-");

也就是说,如果这是一个重要的转换,您还需要确保接收该输入检查的页面,并确保已替换逗号。在您提交之前,JS验证非常适合清理,只需确保您有后备。