我想将自动完成附加到动态生成的输入框。我可以对那些从外部事件(例如单击按钮)生成的人执行此操作。但是在必要的情况下,输入框是在前一个输入框的 ONSELECT 事件上生成的,该输入框附加了自动完成功能。
换句话说,最初我的页面上有一个输入框(带有自动完成功能)。当一个选项被选中(ONSELECT)时,它会生成另一个输入框。问题 - 生成的输入框还应该附加自动完成功能,其 ONSELECT 事件应该生成另一个输入框,这应该永远持续下去。
我主要需要这背后的逻辑。我对语法没问题。只是不知道如何解决循环问题。
我在这里阅读了其他需要做同样事情的问题,但在他们的情况下,元素是在外部生成的。非常感谢任何帮助。提前致谢。
编辑-我是新来的,不知道如何发布格式化的代码-@ Rob --- 谢谢。我喜欢你的主意。但我不明白你为什么最后使用了 .val('') 。好吧,它仍然无法正常工作。我也尝试了其他类似的方法(比如将克隆附加到父元素(div#in))。警报显示在选择上。这意味着 onselect 事件正在被触发。这是代码——
$.post("returncategory.php",
{},
function(data)
{
$('.cat').autocomplete({
source: data,
type:'json',
minchar: 1,
fillin: false,
onSelect: function() {
//alert($(this).parent().get());
//$(this).clone(true, true).appendTo($(this).parent());
//$(this).clone(true, true).appendTo('#in');
$(this).clone(true, true).insertAfter($(this)).val();
}
});
},
"JSON");
编辑:更正了代码格式
编辑:我找到了解决方案 :) 非常感谢您的输入 Rob !这就是我所做的 -
$('.cat').live('click', function() {
$(this).autocomplete({
url: "returncategory.php",
type: "json",
minchar: 1,
onSuggest: function() {
},
onSelect: function() {
$('#clicker').click();
}
});
$(this).focus();
});
$('#clicker').bind('click', function() {
var newItem = $("<br><br><input class='cat' type='text'name='td_products["+1+"]'/>");
$('#in').append(newItem);
newItem.find('input').autocomplete({
url: "returncategory.php",
type: "json",
minchar: 1,
onSuggest: function() {
},
onSelect: function() {
$('#clicker').click();
}
});
});
PS我很高兴。现在我也知道如何在这里发布格式化代码了。谢谢!