我有一个由append()显示的表单。表单包含需要使用js(自动完成功能)调整的输入。 这是它:
function addForm() {
<!-- function code here-->
...
html += ' <table class="form">';
html += ' <tr>';
html += ' <td>Entry product</td>';
html += ' <td><input type="text" name="product" value="" /></td>';
html += ' </tr>';
html += ' <tr>';
html += ' <td> </td>';
html += ' <td><div id="featured-product" class="scrollbox">';
html += ' </div>';
html += ' <input type="hidden" name="featured_product" value="" /></td>';
html += ' </tr>';
html += ' </table>';
$('#form').append(html);
}
$('input[name=\'product\']').autocomplete({
<!-- function code here-->
}
但是自动完成功能不能以这种方式工作。据我所知,这是因为append(html)没有将html存储到DOM。它通常的HTML格式工作正常,但我不能这样做。我需要按照描述创建表单。所以问题是:
如何将js应用于不在DOM中的元素?
或者如何使用js将该元素执行到DOM?
也许我需要使用smth,如append()?
感谢。
答案 0 :(得分:2)
输入此代码:
$('input[name=\'product\']').autocomplete({
<!-- function code here-->
});
在附加html的代码之后。问题是,当尝试进行此绑定时,DOM不包含这些元素
您还可以使用.on
功能来应用此功能:
$('input[name=\'product\']').on("autocomplete",function(){
<!-- function code here-->
});