Замените все запятые в строке на jQuery / Javascript

У меня есть форма, где у меня есть несколько сотен текстовых полей, и я хотел бы удалить любые запятые, когда они загружаются, и предотвратить ввод запятых. Не должен ли следующий код работать, если селектор правильный?

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

3 ответов


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

см. здесь объяснение и примеры javascript string.replace() функция:

http://davidwalsh.name/javascript-replace

как сказал @Vega, это не записывает новое значение обратно в текстовое поле - я обновил код для этого.


используйте регулярное выражение с g флаг вместо строки: .replace(/,/g, "").


ваш код выглядит нормально, за исключением того, что он не устанавливает значение в поле ввода,

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

Edit: используется регулярное выражение