Установить маску jquery для динамически вставленного ввода? - PullRequest
0 голосов
/ 18 февраля 2019

Установить маску jquery для динамически вставленного ввода?

Я пытаюсь сделать это в формате down, но у меня ничего не получается.

Новый ввод теряет маску.

Может кто-нибудь помочь мне с этим, пожалуйста .?

<div class="control">
<input type="text" name="item_valor" placeholder="Valor" class="input valor" maxlength="255" id="id_item_valor">
</div>

.

 $(document).ready(function(){
        $('.valor').mask("#.##0,00", {reverse: true});
    });

.

$(document).on('click', '#addItem', function () {
var newElement = $('.control:last').clone(true);
$('.control:last').after(newElement);
})

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

установить маску на фокус ввода таким образом

$(document).on("focus", ".valor", function() { 
    $(this).mask("#.##0,00", {reverse: true});
  });

Вы, вероятно, можете удалить ее из функции document.ready, а также вместо клонирования и добавления в 2 строки вы можете сократить ее до 1 строки с помощьюthis

$('.control:last').after($('.control:last').clone());

здесь - рабочая скрипкаВ этом случае лучше всего придерживаться класса

0 голосов
/ 18 февраля 2019

Просто вызовите свою функцию маски после добавления каждого входа в DOM.

$(document).on('click', '#addItem', function () {
     var newElement = $('.control:last').clone(true);
     $('.control:last').after(newElement);
      $('.valor').mask("#.##0,00", {reverse: true});
})
...