Bootstrap tagsinput不能使用jquery新动态添加的表行

Bootstrap tagsinput不适用于新动态添加的行。 实际上我正在克隆一个隐藏的表行,其中包含一些输入字段和一个图标。 单击该图标,出现模态窗体,在提交该模态窗体时,我将该模态窗体中的一些值设置为该行中包含的输入bootstrap tagsinput字段。 请注意,所有行都具有相同的输入字段,但具有不同的tr行ID和输入标记输入字段ID。 当我尝试在任何动态添加的行的bootstrap tagsinput字段中设置值时,值总是设置为隐藏的tr行,我不知道为什么这会发生在tagsinput上。 我试图为其他输入字段(textfield,numberfield)设置值,但它们工作正常。 这有什么问题?

我的代码:

我通过这个函数克隆表行:

$('.table-add').click(function () { // var $tr = $TABLE.find('tr.hide'); // var $clone = $tr.clone(true).addClass('hide table-line'); // $tr.removeClass('hide table-line'); var $clone = $TABLE.find('tr.hide').clone(true).removeClass('hide table-line'); hid = $TABLE.find('tr.hide').attr('id'); // //Assigning every table row a unique ID var max=0; $('table').find('tr').each(function(){ var id=parseInt($(this).attr('id')); if (id>=max){ max = id; } }); //cloning row with new ID $clone.attr('id', parseInt(max)+1); $clone.find('input.myinput').attr('id', parseInt(max)+1); $clone.appendTo( $('#'+hid).parent() ); }); 

每个表行都有这些(tagsinput字段和modalform字段)。

        

单击模态表单按钮时,下面的代码工作,其中我得到父tr行并获得唯一的行ID并将其保存为另一个操作并用一些单词填充模态表单。

  //Click on model box $('tr #modelbox').click(function() { var $row = $(this).closest('tr'); var tbid = $row.attr('id'); // table row ID $('#myModal').data('current', tbid); //save current tbid var fieldOption = [] $row.find('#words option').each(function() { fieldOption.push($(this).val()); }); console.log(fieldOption); $('.modal-body-inner').html(''); for(var i = 0, size = fieldOption.length; i < size ; i++){ var item = fieldOption[i]; $('.modal-body-inner').append(" "+ item + ""); } }); 

点击模态表单,我确实取表格行并为该表行的tagsinput字段设置值,这在我的情况下不起作用。 这不适用于tagsinput字段我不知道为什么,但它适用于其他输入字段。 当我在该行的tagsinput中设置值时,此代码为隐藏行的tagsinput字段设置值。

  $('#modelformbuttonclick').click(function() { var tableRowId = $('#myModal').data('current'); c = '#' + tableRowId; //removing all tags if anyone updates tags $(c+ ' input.myinput').tagsinput('removeAll'); var count=1; var color = ["Europe","America","Australia","Africa","Asia", "Asia2", "Africa2"]; $('.modal-body-inner span.myclass').each(function() { c = '#' + tableRowId; var randomNumber = Math.floor(Math.random()*color.length); $(c + ' input.myinput').tagsinput('add', { "name": "tagsdata", "value": $(this).text() , "text": $(this).text(), "continent": color[randomNumber]}); count = count+1; }); submitForm(); });