Задать вопрос

Чать контента вывожу через js, как к импуту который вывожу через js применить replace правила?

Так не спрашивайте почему так сделано, нужно было вывести, чтоб обновлялось при удалении, добавлении и т.д, без перезагрузки и все менялось в реально времени, так сделали мне.

Вывожу код на страницу через js, в коде есть input name="price", в этот импут я хочу внедрить replace правила.
<input name="price" type="text88" value="${value.price}" class="cifr">


Вообщем пытался применить к input name="price", рабочий js, чтобы у импута прайс можно было вводить только цифры и чтоб лишние пробелы удалялись, ну нельзя было ввести. (скрипт рабочий, теперь мне его как-то в коде надо применить).
<script>
  $(".cifr").on('input', function(e) {
    this.value = this.value.replace(/[^0-9\.]/g, '');
  });
</script>


Как ниже в js, адаптировать правила?
this.value = this.value.replace(/[^0-9\.]/g, '');  для input name="price"


buildPTOs: function(d) {
          function render(value) {
            let sCls = value.status == 0 ? "status-offptos" : "",
              title = value.status == 0 ? "Отключить" : "Включить",
              iCls = value.status == 0 ? "closeptos" : "openptos";

            value.rubtext = (value.price) ? " руб" : ""; //если есть цена то выводим с ней (руб)

            $(".cifr").on('input', function(e) {
              this.value = this.value.replace(/[^0-9\.]/g, '');
            });

            return `<tr data-id="${value.id}" id="${value.id}" class="${sCls}">
            <td style="text-align:center" align="center" valign="middle">
                 <span title="${title}" class="icon icon-eye-${iCls} status-checker" data-id="${value.id}"></span>
              </td>
              <td align="center" class="f13">
              ${value.id}
              </td>
              <td>
              <b class="hidname">${value.name}</b><div class="redname" style="display:none"><div style="display:inline-block; float:left"><input name="name" type="text200" value="${value.name}"></div><div style="display:inline-block; float:left"><button style="margin-left:20px" type="button" class="btn btn-success act-save">Сохранить</button></div></div>
              </td>
              <td>
              <b class="hidprice">${value.price} ${value.rubtext}</b><div class="redprice" style="display:none"><div style="display:inline-block; float:left"><input name="price" type="text88" value="${value.price}" class="cifr">руб </div><div style="display:inline-block; float:left"><button style="margin-left:20px" type="button" class="btn btn-success act-save">Сохранить</button></div></div>
              </td>
              <td align="center">
              <a href="/admin/ptoforms/edit/${value.id}" class="btn btn-success act-edit" title="Редактировать"><i class="icon icon-edit icon-white"></i></a> <a href="#" class="btn btn-danger act-remove" title="Удалить"><i class="icon icon-remove icon-white"></i></a>
              </td>
              </tr>`;
          }
          let content = Object.values(d).map(v => render(v)).join('');
          $('table#ptos-list tbody').html(content);
        },
  • Вопрос задан
  • 66 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 1
zkrvndm
@zkrvndm
Архитектор решений
<input oninput="this.value = this.value.replace(/[^0-9\.]/g, '')" name="price" type="text88" value="${value.price}" class="cifr">
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы