0

次のjqueryコードがあります:

$("#ruletypes").change(function()  {                        
    var selectedtype = this.value;                  
    var url;
    if (selectedtype == 1) {
        url = url1;
    } else {
        url = url2;
    }                       
    $.getJSON(
        url,
        function(data) {
            data = $.parseJSON(data); //converting to a javascript object vs. just string....                                  
            if (data !=null){
                //remove everything in current list.
                $('#contact_types')
                .find('option')
                .remove() 
                .end()                      
                //loop through results and add each one     
                $.each(data, function(i) {
                    $('#contact_types')
                    .append($("<option></option>")
                    .attr("value",this.id)                                                  
                    .text(this.description));
                }); //end .each                             
            }//end if
        }//end function(data)
    );//end getJSON.    

    //set default values for contact type
    if (selectedtype == 1)  {                   
        $('#contact_types').val(2).change();  
    } else  {
        $('#contact_types').val(1).change(); 
    }
});//end ruletypes.change

$("#contact_types").change(function () {
    var selectedtext = $("#contact_types option:selected").html();
    alert("select value of contact type is" + selectedtext);
    alert(this.value);
});

私の問題/質問は、プログラムで contact_types 選択ボックスの変更イベントをトリガーすると、値が何であるかを判断できないように見えることです..私が持っている2つのアラートステートメントは、それぞれ未定義とnullを返します。

.text() も試しました。

私のバグがどこにあるか教えてもらえますか? contact_types で現在選択されている項目の値を決定できるようにする必要があります。

ありがとう。

4

2 に答える 2

1

さて、イベントthis.valueを通じて現在選択されている値を取得するために使用する必要があります。onchange明らかな構文エラー (宣言されていない変数、欠落)}など)を修正しました。

$("#ruletypes").change(function () {
    var selectedtype = this.value;
    if (selectedtype == 1) {
        $('#contact_types').val(2).change();
    } else {
        $('#contact_types').val(1).change();
    }
});

$("#contact_types").change(function () {
    var selectedtext = $("#contact_types option:selected").html();
    alert("select value of contact type is" + selectedtext);
    alert(this.value);
});

デモ: http://jsfiddle.net/fgQt3/

于 2013-06-18T13:39:39.143 に答える