2012-05-29 69 views
0

該代碼塊從csv獲取數據,並將其放入JSON並顯示給用戶。另外,我試圖創建一個對象屬性並根據選定的值賦值,但是我得到了deliveryMethod - undefined根據表單分配一個新的對象屬性和值select選擇

$(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; 
      } 
      }); 
     }); 
    }); 
}); 
+0

「DeliveryMethod」的聲明在哪裏?這對我來說似乎是全球性的...用'$(this).val()'來代替。 – elclanrs

+0

我試過了$(這個)並且什麼也沒有。 – MG1

回答

1

您需要聲明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); 
+0

我已經聲明瞭它。出於某種原因,我得到deliveryMethod:undefined – MG1

+1

看來你的錯誤是在XmlObject不是一個有效的聲明對象。 – lucuma

+0

我用我聲明的方式編輯上面的代碼。 – MG1

0

Firefox的控制檯並獲得基於jQuery更改事件沒有更新。因此,通過打印到html進行測試,給了我一直在尋找的結果。

+0

好,你想通了..我沒有問題與Chrome的控制檯和上面的代碼。 – lucuma

相關問題