web-dev-qa-db-ja.com

ドロップダウンのトリガー変更イベント

Jqueryを使用して$(document).readyのドロップダウンの変更イベントをトリガーしたい。

ユーザーの詳細ページに国と州のカスケードドロップダウンがあります。 C#を使用したMVCで国と州の値(ユーザーIDに基づいてDBから取得)を設定するにはどうすればよいですか。

79
Prasad

私はそれほど多くのJQueryを知りませんが、この構文でネイティブイベントを起動できると聞いています。

$(document).ready(function(){

    $('#countrylist').change(function(e){
       // Your event handler
    });

    // And now fire change event when the DOM is ready
    $('#countrylist').trigger('change');
});

Trigger()またはchange()を呼び出す前にchangeイベントハンドラーを宣言する必要があります。そうしないと、トリガーされません。 @LenielMacaferiに言及してくれてありがとう。

詳細情報 こちら

173

これを試して:

$(document).ready(function(event) {
    $('#countrylist').change(function(e){
         // put code here
     }).change();
});

変更イベントを定義し、すぐにトリガーします。これにより、呼び出す前にイベントハンドラーが定義されます。

元のポスターに答えるのが遅れるかもしれませんが、他の誰かが略記法の恩恵を受ける可能性があり、これはjQueryの連鎖などに従います

jqueryチェーン

12
mlnyc

これを試して:

$('#id').change();

私のために働く。

値を設定する1行で:$('#id').val(16).change();

3
d.popov

リンクされたドロップダウンを作成しようとしている場合、それを行う最良の方法は、事前に構築された選択ボックスとそれを要求するAJAX呼び出しを返すスクリプトを用意することです。

必要な場合のjQueryのAjaxメソッドのドキュメントです

$(document).ready(function(){

    $('#countrylist').change(function(e){
        $this = $(e.target);
        $.ajax({
            type: "POST",
            url: "scriptname.asp", // Don't know asp/asp.net at all so you will have to do this bit
            data: { country: $this.val() },
            success:function(data){
                $('#stateBoxHook').html(data);
            }
        });
    });

});

次に、「stateBoxHook」というIDを持つ状態選択ボックスの周りにスパンを設定します

2
xenon

あるいは、ドロップダウンリスト自体にonchange属性を置くことができます。onchangeはこのような特定のjquery関数を呼び出します。

<input type="dropdownlist" onchange="jqueryFunc()">

<script type="text/javascript">
$(function(){
    jqueryFunc(){
        //something goes here
    }
});
</script>

このコードがお役に立てば幸いです。このコードは単なる下書きであり、どのIDEでもテストされていないことに注意してください。ありがとう

1
dave