12

我有一个表单,其中有几百个文本框,我想在加载它们时删除所有逗号并防止输入逗号。假设选择器是正确的,下面的代码不应该工作吗?

$(document).ready(function () {
  $("input[id*=_tb]")
  .each(function () {
      this.value.replace(",", "")
  })
  .onkeyup(function () {
      this.value.replace(",", "") 
  })
});
4

3 回答 3

31
$(function(){
    $("input[id*=_tb]").each(function(){
        this.value=this.value.replace(/,/g, "");
    }).on('keyup', function(){
        this.value=this.value.replace(/,/g, "");
    });
});

string.replace()有关 javascript函数的说明和示例,请参见此处:

http://davidwalsh.name/javascript-replace

正如@Vega 所说,这不会将新值写回文本框 - 我更新了代码来这样做。

于 2012-08-21T13:01:22.257 回答
5

使用带有g标志的正则表达式而不是字符串:.replace(/,/g, "")

于 2012-08-21T13:01:36.680 回答
2

您的代码看起来正确,只是它没有将值设置回输入字段,

$(document).ready(function () {
  $("input[id*=_tb]")
  .each(function () {
      this.value = this.value.replace(/,/g, "")
  })
  .onkeyup(function () {
      this.value = this.value.replace(/,/g, "") 
  })
});

编辑:使用的正则表达式

于 2012-08-21T13:01:48.277 回答