0

私の場合は単純です。コンテナ div があります。その中に、tagName という入力ボックスがあります。これにオートコンプリート プラグイン(jquery.autocomplete.js)を追加しました。ドロップダウンが発生し、キーボードまたはマウスを使用して国を選択すると、onSelect イベントをキャプチャして宣言します。

    $('#tagName').autocomplete({
        lookup: countriesArray,
        onSelect: function () {
            $(this).parent().append($('<input/>', {
                value: '',
                type: 'text',
                name: 'paramName1',
                id: 'paramName1'
            }));
            $('#paramName1').focus();

onSelect 内で、オートコンプリートを適用できますが、この関数を終了して、

$('#paramName1').autocomplete({ lookup:cityArray,... など

オートコンプリートは paramName1 に適用されません。

入力テキストボックスを作成するこの方法は非常に非効率的だと思います。入力ボックスを作成して動的に ID を割り当てるにはどうすればよいですか? さらに、オートコンプリート プラグインは、新しく作成された入力ボックスで動作する必要があります。ご覧いただきありがとうございます。

PS: その後、ホバー/フォーカスに削除ボタンを追加すると、追加機能が簡単になると思います。これは私の最初の jQuery プロジェクトです。

4

1 に答える 1

1

$('#paramName1').autocomplete({ lookup: citiesArray,... etc.関数内で呼び出す必要がありonSelectます。外部で機能しない理由は、要素がまだ存在しないためです。したがって、オートコンプリートは適用できません。

ID を動的に取得したい場合は、変数を使用して設定できます。

このようなもの:

$('#tagName').autocomplete({
        lookup: countriesArray,
        onSelect: function () {
            $(this).parent().append($('<input/>', {
                value: '',
                type: 'text',
                name: 'paramName1',
                id: myDinamicId
            }));
            $('#'+myDinamicId).autocomplete({ lookup: citiesArray,... etc.
            $('#'+myDinamicId).focus();

あなたの質問によく似た質問があります。それをチェックしてください:動的に生成されたテキストボックスのjqueryオートコンプリート

于 2013-01-11T01:28:08.167 に答える