我想將自動完成附加到動態生成的輸入框。 我可以通過外部事件(如點擊按鈕)生成這些內容。 但是 在所需情況下,輸入框正在上一個輸入框的ONSELECT事件上生成,該輸入框自動完成附加。Jquery自動完成循環
換句話說,最初我的頁面上有一個輸入框(帶有自動完成)。當選擇一個選項(ONSELECT)時,它會生成另一個輸入框。問題 - 生成的輸入框還應該附加自動完成,其ONSELECT事件應該生成另一個輸入框,並且應該永遠持續下去。
我主要需要這個背後的邏輯。我對語法沒問題。只是不知道如何解決循環問題。
我已經閱讀了這裏需要做同樣事情的其他問題,但在他們的情況下,這些元素是在外部生成的。非常感謝任何幫助。提前致謝。
編輯 - 我是新來的不知道如何發佈代碼formatted- @羅布---感謝。我喜歡你的想法。但是我沒有明白你爲什麼最終使用了.val('')。那麼,它仍然無法正常工作。我也嘗試了其他類似的方法(如將克隆附加到父元素(div#in))。警報顯示在選擇。這意味着選擇事件正在被解僱。下面的代碼 -
$.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");
編輯:糾正代碼格式化
編輯:我找到了解決辦法:)非常感謝您的輸入搶! 這是我做的 -
$('.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();
}
});
});
P.S.我很高興。現在我也知道如何在這裏發佈格式化的代碼。謝謝!
請看我在編輯答覆。謝謝。 – MindHacker
嘗試調試$(this)。確保它指的是#cat輸入,而不是別的。嘗試'onSelect:function(){$(this).remove()}'看看輸入是否消失。我不確定你使用的是哪一個自動完成插件,但我會推薦使用jQuery UI,它非常好 – Rob
好吧,自動完成使用「this.ac」作爲參考,所以下面的代碼開始工作。生成的盒子正在執行自動完成。但是當從第二個框中進行選擇時,第三個框已生成,但不支持自動完成。這裏是代碼----- $('。cat')。自動完成({url:「returncategory.php」, type:「json」, minchar:1, onSelect:function(){ $( this.ac).clone(true,true).insertAfter(this.ac); } }); – MindHacker