2014-12-27 84 views
0

朋友如何將其他隱藏變量傳遞給jQuery/Ajax Post dataObj?

我有以下的jQuery的AJAX調用後

function submitForm() { 
      var selectedPricingTierId = ""; 
      var lstIds = new Array(); 

       jQuery('input[type=checkbox]').each(function() { 
        if(this.checked && this.id !="select_all"){ 
        if(selectedPricingTierId == "") { 
         selectedPricingTierId = this.id; 
        } else { 
         selectedPricingTierId = selectedPricingTierId + "," + this.id; 
        } 

       } 
       }); 

      var dataObj = { 
        "lstIds" : selectedPricingTierId 
       }; 
       jQuery.ajax({ 
        url : getCurrentLocation() + "/saveIncentives.action", 
        type : "POST", 
        data : dataObj, 
        success : function(data) { 
        closeWindow(); 

        } 
       }); 
      } 

現在我有以下隱變量傳遞給我的dataObj

<s:hidden name="month" id="month" value="%{month}" /> 
<s:hidden name="year" id="year" value="%{year}" /> 

我如何追加以上無能在Post調用中隱藏了我的DataObj變量。

請建議您可以做一個合適的方式

回答

0

:那等於相同

var dataObj = { 
    "lstIds" : selectedPricingTierId, 
    "month" : $('input[name="month"]').val(), 
    "year" : $('input[name="year"]').val() 
}; 

var dataObj = {}; 
dataObj.lstIds = selectedPricingTierId; 
dataObj.month = $('input[name="month"]').val(); 
dataObj.year = $('input[name="year"]').val(); 

或。

但我會建議改變你的方法來創建一個窗體,然後序列化它,並將這些序列化的數據傳遞給你的ajax。

這裏的小提琴:jsfiddle和示例代碼:

<form id="myForm" action="saveIncentives.action" method="POST"> 
    <input type="text" name="name" value="John" /> 
    <input type="checkbox" name="vehicle" value="Bike" />Bike 
    <input type="checkbox" name="vehicle" value="Car" />Car 
    <input type="hidden" name="month" value="04" /> 
    <input type="hidden" name="year" value="2015" /> 
    <input type="submit" value="Submit" /> 
</form> 

和JS序列化數據:

$('#myForm').submit(function(e){ 
    e.preventDefault(); 
    var dataObj = $('#myForm').serialize(); 

    jQuery.ajax({ 
     url : $(this).attr('action'), 
     type : "POST", 
     data : dataObj, 
     success : function(data) { 
      closeWindow(); 
     } 
    }); 

    return false; 
}); 

這種序列化的數據可能比輕鬆讀取服務器端,就像你與任何做POST參數。

+0

感謝 所以我dataObj看起來像 VAR dataObj = { 「lstIds」:selectedPricingTierId, \t \t \t \t \t dataObj.month = $( '輸入[名稱= 「月」]')VAL()。 ; \t \t \t \t \t dataObj.year = $('input [name =「year」]')。val(); }; ?? 請讓我知道 – 2014-12-27 18:27:08

+0

不,如果你想這樣,它應該看起來像這樣:dataObj = {「lstIds」:selectedPricingTierId,「month」:$('input [name =「month」]')。val ),「year」:$('input [name =「year」]')。val()}; – bwitkowicz 2014-12-27 18:36:43

+0

我已經更新了一個答案,以便您可以更好地使用代碼突出顯示。如果這有助於請接受/投票答案:) – bwitkowicz 2014-12-27 18:41:00