2016-10-28 14 views
0

ajaxによってページに動的に追加される入力ボックスは、ドロップダウンリストからのユーザーの選択によって異なります。JqueryオートコンプリートがAjaxの入力ボックスで動作しない

document.getElementById("input_box").innerHTML ="<input id='ProjectName'/>"; 

問題は、jQueryの自動完全なその入力ボックス「プロジェクト名」での作業ではありません。

$(function() { 
    $('#ProjectName').autocomplete({ 
     source: 'data.php' 
    }); 
}); 

jQueryオートコンプリートと同じPHPでハードコーディングすると、これは完全に機能します。

助けてください。

+1

あなたはあなたのページに '#ProjectName'要素を追加した後に' autocomplete(...) 'が**実行されていることを確認する必要があります。 '$("#element-that-doesnt-exists ')。オートコンプリート(...) ' – Dekel

+0

jqueryを既に使用している場合は、' $( "input_box")。html( "あなたが何かをバインドしようとする前に、要素が作成されていることを確認してください。 – ajax333221

答えて

0

コントロールが生成される前にオートコンプリート関数が呼び出されるためです。この

function setInput(){ 
    document.getElementById("input_box").innerHTML ="<input id='ProjectName'/>"; 
    $(document).ready(function(){ 
     $('#ProjectName').autocomplete({ 
      source: 'data.php' 
     }); 
    }) 
}<br/> 
setInput(); 

のようにそれを試してみて、あなたも同様にjQueryを使用してinputを設定することを検討することができますしてください。

 $(#input_box).html("< input id='ProjectName'/>")

+0

'#input_box'に引用符がなく、' $(document)。 ready() '関数内ではあまり意味がありません – ajax333221

0

回答ありがとうございます。本当に役に立ちます。実際、私はJqueryをあまり知らない。だから私は$(#input_box).html( "< input id = 'ProjectName' />")を使う方法を知らないのです。

不思議なことに、奇妙なことに、入力ボックスからonkeyupイベントを呼び出すと、コントロールが生成される前にオートコンプリートが呼び出されても、機能します。

Ajaxページに入力ボックスを生成します。

<input id='ProjectName' onkeyup='setInput();'/>  

ページのJavaScriptを有効にしてください。

<script> 
function setInput() 
{ 
    $(document).ready(function(){ 
    $('#ProjectName').autocomplete({ 
    source: 'data.php' 
    }); 
    }) 
} 
</script>"; 
関連する問題