tokenfield не работает с jQuery Clone - PullRequest
0 голосов
/ 22 июня 2019

Здравствуйте, я использую tokenfield для создания входных тегов.

Я пытался клонировать элемент без успеха.Есть ли способ сделать правильное клонирование?Это для динамической формы.

Проблема : Поля не работают после клонирования.Я думаю, что проблема в токенах.

Это мой код JavaScript:

$('.tokenfield').tokenfield();

Это моя функция клонирования:

$('.clone').on('click',function(){
  var newLine = $(".attribute:first").clone();
  $("#variants").append(newLine);
});

Это мой код HTML:

<div id="variants">
  <div class="row attribute">
    <div class="col-lg-4">
      <div class="input-group"> <span class="input-group-prepend">
        <button class="btn btn-light clone" type="button"><i class="icon-plus3"></i></button>
        </span> <input type="text" class="form-control" placeholder="Left button"> </div>
      </div>
      <div class="col-lg-8">
        <div class="form-group mb-1"> <input type="text" class="form-control tags tokenfield" name="variant[value][]" value=""><br>
      </div>
    </div>
  </div>
</div>

1 Ответ

0 голосов
/ 22 июня 2019

Вы клонируете целое .attribute div ... Который включает input, который имеет экземпляр tokenkenfield on ...

Как сказал Бармар, .clone(true) будет "глубоко клонировать", то есть он также будет клонировать свойства и события ... Но Вы говорите о экземпляре плагина на ребенок. На этом история заканчивается плохо;)

К счастью, есть способ. Вам просто нужно создать еще один экземпляр tokenkenfield на этом новом input.

Примерно так:

$('.clone').on('click',function(){
  var newLine = $(".attribute:first").clone();
  $("#variants").append(newLine);
  $("#variants").find(".tokenfield").last().tokenfield();  // New instance here.
});

Отказ от ответственности: Не проверено (Но, надеюсь, вы поняли ...;))

...