我目前正在为wordpress开发一个插件,并使用jquery自动完成。在我的插件文件中,我可以像这样自动完成:
wp_enqueue_script('jquery-ui-autocomplete');然后,我将脚本分配给如下所示的输入id:
jQuery("#post_email_repeatable").autocomplete({
source:"get_posts.php",
minLength:1
})这对于一个输入来说是很好的。但是,我使用的是可重复/可重用的输入字段(它们可以动态创建)。它们都具有相同的#post_email_repeatable标识。
自动完成将只对第一个输入与id的#post_email_repeatable.
我的问题是,是否有可能使自动完成工作,而不是一个输入与相同的id?
发布于 2014-02-05 03:13:52
.autocomplete很可能无法处理额外的字段,因为它们是用javascript动态添加的,并且当您调用javascript .autocomplete()时,它会在页面加载时运行。您的动态创建的字段还不存在,还没有自动完成与它们挂钩。尝尝这个。
jQuery(document).on("keydown", ".post_email_repeatable", function(){
jQuery(this).autocomplete({
source: "get_posts.php",
minLength: 1
});
});这会将自动完成函数--输入字段与该类绑定在一起--每当发生按键事件时。因此,即使在新动态创建的字段上发生keydown事件时,它也会触发。
同样,正如Milo所评论的,您应该使用一个类,因为ID应该是唯一的,但是没有唯一的ID不应该破坏它的功能。我仍然建议您在每个可重复字段中添加一个"post_email_repeatable“类。
https://wordpress.stackexchange.com/questions/128409
复制相似问题