2012-02-14 22 views
0

jquery .html()を使用して、REST URLを呼び出していくつかのタグを動的に追加していますが、動作しません。jquery .html()does not work

<div style="display: none;" id="tables"> 
    <form:select id="table" name="table" path="table">  
     <form:option value="">Choose</form:option> 
     <div id="tables-select"> 
     <!-- The available tables for update will be added here --> 
     </div> 
    </form:select> 
    <script type="text/javascript"> 
     function getTables(type) { 
      $.getJSON('/web/tables/db/' + type, 
      { 
       ajax : 'true' 
      },function(data) { 
      html =''; 
      var len = data.length; 
      for (var i=0; i<len; i++) { 
       html += '<option value="'+data[i]+'" >'+data[i]+'</option>'; 
      } 
      $('#tables-select').html(html); 
      }); 
     } 
    </script> 
</div> 

RESTコールが進行中ですが、何も起こりません。 デバッグしてブレークポイントを配置した後、私はJavaスクリプトが直接10行目からJavaスクリプト関数の最後までジャンプすることがわかります(20行目)。

ここで何が起こっているのでしょうか? 私は同じ種類の機能を私のページに持っており、これらすべての仕事はこのページに期待しています。

EDIT:getTables()のため行方不明閉じかっこがあります:

これは私が機能

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#type").live('change', function(){ 
      var type = $(this).val(); 
      getSites(type); 
      getTabless(type); 
     }); 
    }); 
</script> 
+4

読みやすくするためにコードをインデントしてください。ありがとうございました。 –

+0

コードに行番号を含めないでください。書式が間違っています。 –

+1

15行目にブレークポイントを設定します。それが当たっていなければ、AJAXコールは正しく機能していません。 – arb

答えて

1

現状では、このコードが間違っているを呼び出しています方法です。また、実際にgetTables()と呼ばれるコードがあるとします。そうでなければ、このコードは関数を宣言する以外は何もしません。

デバッグ時には、$.getJSONコールが実際に迅速に実行されます。 AJAXの全目的は、非同期です。コールバックは後で呼び出されるため、デバッガはコールバックを入力せずに$.getJSONコールを処理します。コールバック内にブレークポイントを置くと、ブレークポイントがトリガされます。

この全体の<DIV>のスタイルはdisplay:noneです。あなたが$('#tables').show()と呼んでいないか、それを可視にする何かをしている場合を除き、結果はDOM以外では見えなくなります。

また、<SELECT>タグ内に<DIV>タグを配置することはできません。 tables-select要素に<OPTGROUP>タグを使用するか、初期の「選択」オプションを含む<SELECT>要素の内容全体を置き換えます。

+0

はい、getTables()を呼び出すページの上に関数があり、REST呼び出しがうまくいっていて、ブラウザの結果が表示され、そのステップの後にデバッガが関数の最後の行にスキップするだけです。不足している中括弧はタイプミスです。 – tazo

+0

コールバックが非同期であるため、**デバッガ**は**関数の最後の行にスキップします。 –

+0

ajaxをtrueにすると同期呼び出しになりますか? – tazo

関連する問題