2012-02-22 19 views
0

私はリストボックスを持っており、特定の選択値にはドロップダウンを表示したいのですが、ドロップダウンからの値の選択には別のドロップダウンを表示したいと思います。ポストバックなしのjquery changeイベント

jqueryを使用してこれを実現しましたが、ポストバック後にのみドロップダウンが表示されます。ポストバックを避けるには?

これは私のjqueryのコードである

<script type="text/javascript"> 
$(document).ready(function() { 
    if ($('#<%=under_list1.ClientID %> option:selected').val() == 0) { 
     $("#ddl_nature1").show(); 
     $("#ddl_gross1").hide(); 
     if ($('#<%=ddl_nature.ClientID %> option:selected').val() == 'I', $('#<%=ddl_nature.ClientID %> option:selected').val() == 'E') { 
      $("#ddl_gross1").show(); 

     } 
     else { 
      $("#ddl_gross1").hide(); 

     } 
    } 
    else { 
     $("#ddl_nature1").hide(); 
     $("#ddl_gross1").hide(); 
    } 
}); 

under_list1は、ddl_nature1は私の最初のドロップダウンリストボックスは、私のIDで、ddl_gross1は私の2番目のドロップダウンです。

+1

コードはコードの後ろおよびaspxページから投稿してください。ドロップダウンでAutoPostBackをfalseに設定できます。 –

答えて

1

ドロップダウンリストの変更についても同じチェックを追加する必要があります。ここでは、ドロップダウンリストの変更を共通の機能に置き換え、ドロップダウンリストの変更とDOMの準備が完了したときのもの(魔法使いはポストバックバック)を呼び出します。

$('#<%=ddl_nature.ClientID %>').change(function() { 
    ChangeViews(); 
}); 


$(document).ready(function() { 
    ChangeViews(); 
}); 

function ChangeViews() 
{ 
    if ($('#<%=under_list1.ClientID %> option:selected').val() == 0) { 
     $("#ddl_nature1").show(); 
     $("#ddl_gross1").hide(); 
     if ($('#<%=ddl_nature.ClientID %> option:selected').val() == 'I', $('#<%=ddl_nature.ClientID %> option:selected').val() == 'E') { 
      $("#ddl_gross1").show(); 
     } 
     else { 
      $("#ddl_gross1").hide(); 
     } 
    } 
    else { 
     $("#ddl_nature1").hide(); 
     $("#ddl_gross1").hide(); 
    } 
} 
+0

私はまだリストボックスから特定の値の選択に2番目のドロップダウンを表示し、2番目のドロップダウンから値の選択で3番目のドロップダウンを表示するためにページを更新するためにページを更新する必要があります – asifa

+0

2番目と3番目のドロップダウンを取得するために、リストボックスから値を選択した後、ページを繰り返しリフレッシュする必要があります。 – asifa

+0

@asifaあなたが求めるものを完全に理解するには、コードのhtlp部分が必要です。ここで私はあなたがポストバックなしでそれをしたいと理解しています。 – Aristos

0

なぜAjax PageLoad機能を使用しないでください。各PostBackの後には、pageLoad関数が呼び出されます。

function pageLoad() 
    { 
     if ($('#<%=under_list1.ClientID %> option:selected').val() == 0) { 
      $("#ddl_nature1").show(); 
      $("#ddl_gross1").hide(); 
      if ($('#<%=ddl_nature.ClientID %> option:selected').val() == 'I', $('#<%=ddl_nature.ClientID %> option:selected').val() == 'E') { 
       $("#ddl_gross1").show(); 

      } 
      else { 
       $("#ddl_gross1").hide(); 

      } 
     } 
     else { 
      $("#ddl_nature1").hide(); 
      $("#ddl_gross1").hide(); 
     } 

} 
+0

私はポストバックをしたくありません。リストボックスから特定の値(1)を選択すると、ドロップダウンが表示され、ドロップダウンから値1を選択すると、3番目のドロップダウンを表示します。ドロップダウンは適切に表示されますが、ページの更新時にのみ – asifa

+0

ページを何度もリフレッシュまたはロードしたくない場合、対応するドロップダウンを表示します – asifa

関連する問題