javascript - 如何将 jquery 插件附加到动态创建的文本框

标签 javascript jquery dom autocomplete struts

我在jsp中有一个文本框,如下

<input id="newHardware_details_0__hardware_type" name="details[0].hardware_type" class="autocompleter">

我正在使用 jquery 插件“自动完成”,如下所示:

$(function() {
    var availableTypes = [ "Desktop",
    "Laptop",
    "Mobile",
    "Tablet",
    "Printer",
    "Scanner",
    "Server",
    "Switch",
    "Wifi-router",
    "USB Dongle"
    ];
    $( ".autocompleter" ).autocomplete({
      source: availableTypes
    });
  });

我有另一个添加按钮,单击该按钮我想添加具有“自动完成”功能的类似文本框。我能够从 javascript 函数动态创建文本框,但无法将此 jquery 插件自动完成器附加到它。请注意,可以多次单击“添加”按钮,并且新生成的文本框的名称如下

详细信息[1].hardware_type

详细信息[2].hardware_type

详细信息[3].hardware_type等..

Javascript代码如下:

function addRow(tableID) {
    //alert ("adding row");
var table = document.getElementById(tableID);

var rowCount = table.rows.length;
var idx = rowCount+1;
var row = table.insertRow(rowCount);


var cell1 = row.insertCell(0);

var hardware_typeElement = document.createElement("input");
hardware_typeElement.type = "text";
hardware_typeElement.name = "details[" + idx + "].hardware_type";
hardware_typeElement.id = "newHardware_details_" + idx + "__hardware_type";
hardware_typeElement.className = "autocompleter";
cell1.appendChild(hardware_typeElement);

var label = document.createElement("label");
var t = document.createTextNode("Hardware Type");
label.setAttribute("for", "newHardware_details_" + idx + "__hardware_type");
label.appendChild(t);
cell1.insertBefore(label,document.getElementById("newHardware_details_" + idx + "__hardware_type"));



}

我对 Jquery 很陌生。任何帮助将不胜感激

最佳答案

像下面这样的事情就可以了:

$(/*select your td here*/).append('input type="text" class="my-textbox"');
$(/*select same td*/).find('input.my-textbox').callPluginMethod();

更新:修改了有问题的代码:

$("#trigger").click(function(){
   addRow();
})
function addRow() {
   $(tableID).append('<tr><td><input type="text" class="my-textbox"></input></td></tr>')
   $(tableID).find('tr:last > input.my-textbox').callPluginMethod();
}

关于javascript - 如何将 jquery 插件附加到动态创建的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29763285/

相关文章:

javascript - 如何使用 jquery 删除 HTML TABLE 中的最后一列?

javascript - 在 Promise 中解决 Promise

javascript - 带有未选择正确值的选择单元格的 Angularjs ng-grid

javascript - 使用 JS 或 jQuery 按字母顺序排列列表

javascript - Django + Vue.js 导入模块

javascript - ParseInt 16 基数转 10 基数

javascript - 在 <p> 中设置文本时无法呈现 <br>

jquery - NivoSlider - 悬停时在控制导航上出现奇怪的像素跳转

javascript - createElementNS 是否始终离线工作?特别是 SVG 命名空间

Java XPath 返回单个结果而不是 NodeSet