如何对动态生成的input使用autocomplete?

如果要对动态生成的input绑定原始事件的话,我知道语法是

$(parentElement).on("click",childrenElement,function(){
//do something here
});

非动态生成的input的zutocomplete代码如下:

$("#initial-input").autocomplete({
    source: authors,
    // autoFocus: true,
    focus: function(event, ui) {
      $("#initial-input").val(ui.item.label);
      return false;
    },
    select: function(event, ui) {
      $("#initial-input").blur();
      return false;
    },
    //close要放在最后
    close: function(event, ui) {
      $("#initial-input").val("");
    }
});

请问该如何对动态生成的input调用autocomplete?请各位老师不吝赐教。。。。

阅读 3.9k
1 个回答

使用是jquery-ui?

不是动态生成的input你使用了$('#initial-input'),而且还用了好几个,首先这不提倡(题外话)。

动态生成的input,你在生成的时候,会有一个input实例。

生成input之后,如果自动填充的内容不一样的话,可以把你上面$('#initial-input')换成$(inputElem)即可。

如果生成的input和之前多个input自动填充的source一样,建议给一个class,直接使用class填充,这样可以直接控制多个input的自动填充(前提是自动填充的source一样)

代码如下:(一个简单地示例代码)

<body>
</body>
<script>
    var authors = [
        'name',
        'name',
        'name',
        'name',
        'name',
        'name',
    ];
    var inputElem = document.createElement("input");
    document.body.appendChild(inputElem);
    $(inputElem).autocomplete({
        source: authors
    });
</script>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题