動的に生成された入力ボックスにオートコンプリートを追加したい。外部イベント(ボタンのクリックなど)から生成されたものでこれを行うことができます。ただし、必要な場合、入力ボックスは、オートコンプリートが関連付けられている前の入力ボックスの ONSELECT イベントで生成されています。
つまり、最初は自分のページに入力ボックス (オートコンプリート付き) があります。オプションが選択(ONSELECT)されると、別の入力ボックスが生成されます。問題 - 生成された入力ボックスには、オートコンプリートも関連付けられている必要があり、その ONSELECT イベントは別の入力ボックスを生成する必要があり、これは永久に続く必要があります。
私は主にこの背後にあるロジックが必要です。私は構文で大丈夫です。ループの問題にアプローチする方法がわかりません。
ここで同じことを行う必要がある他の質問を読みましたが、その場合、要素は外部で生成されています。本当に助けていただければ幸いです。前もって感謝します。
編集-私はここで新しいので、フォーマットされたコードを投稿する方法がわかりません-@ロブ---ありがとう。私はあなたの考えが好きでした。しかし、最後に .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");
編集:修正されたコードフォーマット
編集:私は解決策を見つけました:)ロブさん、ご意見ありがとうございます!! これが私がしたことです-
$('.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とても嬉しいです。そして今、フォーマットされたコードをここに投稿する方法も知っています。ありがとう!