2009-07-13 15 views
3

jqueryを使用してドロップダウンボックスを読み込むためのデータベースクエリを実行しています。クエリが実行されている間にドロップダウンボックスに「Loading ...」という単語を表示する方法はありますか?ドロップダウンボックスに "Loading ..."を表示

ありがとうございました。アヤックスが実行されている間

+0

FYIドロップダウンを追加します検索した後にアイテムをドロップダウンに追加するときは、オプションの数が些細なものよりも多い場合は、手動でリストに各オプションを追加することを避けてください。バッチ挿入は、次のようにしてください。 var options = []; var index = -1; (アイテム内のアイテム){ オプション[++インデックス] = '<オプション値= "'; オプション[++インデックス] =アイテム; オプション[++インデックス] = '">'; オプション[++ index] = items [item]; オプション[++ index] = ''; } オプション[++ index] = ''; $(ListBox).after(options.join( '')); 警告コードはテストされておらず、おそらく動作しません。 –

+0

ええ、ここではフォーマットが行われておらず、フォーマットを正しく行う方法は実際にはわかりません。多数のオプションを備えたパフォーマンスの立ち上げポイントとしてhttp://stackoverflow.com/questions/815103/jquery-best-practice-to-populate-drop-downを参照してください。基本的には、実行しているDOM操作の量を制限する必要があります。大量の挿入をDOMに行うのは、大量に更新するよりもすばやいです。 –

答えて

7

ようなコードを書くことができ、のは「userChoice」ダウンあなたのドロップを呼ぶことにしましょう:

$('#myDropDown').prepend($('<option></option>').html('Loading...')); 
+0

あなたが単純に行うことができるときにHTMLメソッドを呼び出す理由なぜ $( '#myDropDown')。prepend( ''); IMHOを読むのが簡単です。 – SolutionYogi

+0

私はプログラミングでは新しく、教えていただけますか?コードでそれをどうやって行うことができますか? (https://stackoverflow.com/questions/42593871/ajax-combo-box-with-please-wait-label-for-loding-data) –

7

あなたのドロップダウンリストに一時的な項目を追加することができますが、

$(document).ready(
    function() 
    { 

     //Before calling your ajax method, clear the select drop down. 
     //and add a loading option. 
     $('#userChoice') 
      .children() 
      .remove() 
      .end() 
      .append('<option value="">Loading...</option>'); 

     $.ajax(

        //Load the userChoice as usual in success handler of your ajax call. 
        success : function() { //Load #userChoice } 
      ); 


    } 
); 
1

を何もない場合最初に、デフォルトのHTMLにして、jQueryの半分を削除しました。

<select> 
    <option>Loading...</option> 
</select> 

クエリが終了したら、optionを結果に置き換えてください。

+0

これは私の意見では最高の選択肢です。 1 –

0

あなたはAJAX呼び出してクエリを実行している場合は最初のドロップダウンリストをクリアし、(クライアント側のJavaScriptで)ロードメッセージを挿入するために、次のように、あなたが何かを使用することができます。

var lb = document.getElementById ("myDropdownList"); 
lb.options.length = 0; 
var newOpt = new Option("Loading...", ""); 
lb.options[0] = newOpt; 
// Your jquery call here 
... 
0

がこれを追加は、 Ajaxのポストの前に

$('#myDropDown').empty(); 
$('#myDropDown').append($('<option></option>').html('Loading...')); 

は再び成功に動的に

$('#myDropDown').empty(); 
$('#myDropDown').append($('<option></option>').val("").html("Select")); 
for (var i = 0; i < array.length; i++) { 
       $('#myDropDown').append($('<option></option>').val(array[i].selectedvalue).html(array[i].selectedtext)); 
      } 
関連する問題