0

2 つの選択ドロップダウン リストを含む html フォームがあります。それぞれに、出発/移動する同じサイトがあります。それぞれの ID を取得して個別の変数として保存しようとしていますが、新しいオプションを選択するたびに変数が にリセットされundefinedます。私のコードは次のようになります。

$('select[name=Depart], select[name=Return]').change(function(){
    var id = $(this).attr('id');
    var depart_id;
    var return_id;

    // Grabs the place you left from
    var dep = $('select[name=Depart] option:selected').val(); 

    // Grabs the place you traveled to
    var ret = $('select[name=Return] option:selected').val();

    // Grabs the day in the log as a string 
    var day_id_raw = $(this).closest('tr').attr('id'); 

    // Creates a jQuery object from the string above
    var day_id = $('#' + day_id_raw);

    // Creates a substring of the string above cutting it off at the day number in the log. E.g. "Day 1" in the log becomes the number "1". 
    var day_num = day_id_raw.substring(3, day_id_raw.length); 

    //Creates a jQuery object for the miles of the day table column
    var miles_today = $('#miles_day' + day_num);

    if($(this).is($('select[name=Depart]'))){
        depart_id = id;
    }
    if($(this).is($('select[name=Return]'))){
        return_id = id; 
    }

    // Checks if the place you left from contains a column to output how many miles you traveled that day. 
    if(day_id.has(miles_today)){
        miles_today.text(depart_id + "\n" + return_id);
    }
)};

最後のifステートメントは、デバッグのみを目的としています。miles_today変数が実際に機能しているかどうかをテストするためにコンテンツを書き込んでいる空の div です。前に述べたように、いずれかの選択入力でオプションを変更するたびに、代替変数がクリアされます。前もって感謝します。

編集:返信が遅くなり、あいまいな言葉遣いで申し訳ありません。これが私が持っているものの実際の例です: http://jsfiddle.net/8xVuX/2/ 「日数」フィールドに1または2を入力するだけで、新しい行が追加されます。「Departed From」の選択メニューをクリックしてオプションを選択するidと、左側のフィールドに出力されますが、他のフィールド「Returned To」には未定義ですidid選択オプションが変更されたときに両方を表示したい。

4

1 に答える 1

2

変更機能の外でそれらを取得し、好きな場所で使用します:

var depart_id = $('select[name=Depart]').prop('id'),
    return_id = $('select[name=Return]').prop('id');

$('select[name=Depart], select[name=Return]').on('change', function(){

    miles_today.text(depart_id + "\n" + return_id);

});

しかし、値を取得するべきではないと確信していますか?

于 2013-05-09T21:04:32.110 に答える