0

このコード ブロックは、csv からデータを取得し、それを JSON に入れ、ユーザーに表示します。さらに、オブジェクト属性を作成し、選択した値に基づいてその値を割り当てようとしていますが、deliveryMethod - undefined.

$(document).ready(function() {
$.getJSON('CSV.php', function(data) {

    var prevCardCode = '';
    var newDiv; var NewDiv2;
    var DeliveryMethod;

    $.each(data, function(index, element) {
        var XMLObject = jQuery.extend({}, element);

        if (element['CardCode'] != prevCardCode) {
            newDiv = $('<div/>').addClass('row').appendTo('#showdata');
            $('<div class="sum_field">' + 'Total: ' + element['payment_sum'] + '</div>').appendTo(newDiv);

                $('<div class="options">Delivery Method: <select name="Delivery_Method" id="Delivery_Method"><option value="100" selected="selected">US Mail</option><option value="300">Foreign Mail</option></select></div>').appendTo(newDiv);

                $('select#Delivery_Method').change(function(){
                    DeliveryMethod = $(this).val(); 
                });

                    XMLObject.deliveryMethod = DeliveryMethod;
                    console.log(XMLObject);

        }

        newDiv2 = $('<div/>').addClass('sub_row').appendTo(newDiv);

        prevCardCode = element['CardCode'];

        $.each(element, function(key, value) {

            switch (key) {
                case 'InvKey':
                break;

                default:

                   $('<div class="field">' + value + '</div>').appendTo(newDiv2);
                   break;
            }
          });
      });
   });
});
4

2 に答える 2

1

change 関数の外で DeliveryMethod を宣言する必要があります。

var XMLObject = {};
var DeliveryMethod;

$('<div class="options">Delivery: <select id="Delivery_Method"><option value="100" selected="selected">US Mail</option><option value="300">Foreign Mail</option><option value="400">UPS Priority - 10am guarantee</option></select></div>').appendTo(newDiv);

 $('#Delivery_Method').change(function(){
   DeliveryMethod = $('select#Delivery_Method').val(); 
   });

    XMLObject.deliveryMethod = DeliveryMethod;
    console.log(XMLObject);
于 2012-05-29T23:40:42.260 に答える
0

Firefox コンソールは、Jquery 変更イベントに基づいて更新されません。したがって、これを html に出力してテストすると、探していた結果が得られました。

于 2012-05-30T17:19:14.390 に答える