1

http://stephenwalther.com/blog/archive/2008/09/07/asp-net-mvc-tip-41-creating-cascading-dropdown-lists-with-ajax.aspxのカスケード ドロップダウンを使用しています。

カスケード ドロップダウンが初めて空白にならないように、ドロップダウンに値を設定し、変更イベントを呼び出す必要があります。

しかし、変更イベントは試行で呼び出していません:

            $('#Country').trigger('change');
                       or
            $('#Country').change();

このドロップダウンの変更イベントを呼び出して、カスケード ドロップダウンをトリガーするにはどうすればよいですか。

4

2 に答える 2

0

ドロップダウン リスト コントロールはサーバー側 (asp:dropdownlist タグ) ですか、それともクライアント側 (select タグ) ですか?

サーバー側の場合は、コントロールのクライアント側 ID を挿入する必要があります。これが、イベントが発生しない原因である可能性があります。

ASP.NET では、サーバー側のコントロールは生成された別のクライアント側 ID を持ちます (そのため、ID "Country" を持つ DropDownList は、ct01_ct050_Country のようなクライアント側 ID を持ちます。

このような場合、以下を使用して、実行時にマークアップにクライアント側 ID を挿入できます。

$('#<% Country.ClientID %>').change(function() {
    //code here
});

実行時に、レンダリングされたコード/マークアップは次のようになります。

$('#ct01_ct050_Country').change(function() {
    //code here
});

クライアント/サーバー ID を回避する他のオプションは、一意の CSS クラス名をコントロールに適用し、代わりにそれによって選択することです。

マークアップ:

<asp:DropDownList ID="Country" CssClass="countryDD" runat="server" />

およびjQuery:

$('select.countryDD').change(function () {
    //code here
});

この答えは、そのままの ASP.NET にも当てはまります。私はそのフレームワークを使用していないため、MVC に関連しているかどうかはわかりませんが、概念またはマークアップとクライアント コードはかなり近いと思います。

これが役立つことを願っています...

于 2010-01-15T21:15:12.890 に答える
0

カスケード ドロップダウンでは、jquery onまたはbindを使用します

$('#Country').on('change', function () {
  //Do stuff here

});

$('#Country').bind('change', function () {
  //Do stuff here

});
于 2012-07-11T14:23:56.850 に答える