如何将额外的隐藏变量传递给jQuery/Ajax Post dataObj?
朋友 我有以下jQuery ajax Post调用如何将额外的隐藏变量传递给jQuery/Ajax Post dataObj?,jquery,ajax,jsp,Jquery,Ajax,Jsp,朋友 我有以下jQuery ajax Post调用 function submitForm() { var selectedPricingTierId = ""; var lstIds = new Array(); jQuery('input[type=checkbox]').each(function () { if(this.checked && this
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中
请建议一种合适的方法您可以:
var dataObj = {};
dataObj.lstIds = selectedPricingTierId;
dataObj.month = $('input[name="month"]').val();
dataObj.year = $('input[name="year"]').val();
或:
那是一样的
但我建议您改变创建表单的方法,然后序列化表单,并将这些序列化数据传递给ajax
这是提琴:和示例代码:
<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>
这个序列化的数据在服务器端可以很容易地读取,就像使用任何POST参数一样。谢谢,所以我的dataObj看起来像var dataObj={“lstIds”:selectedPricingTierId,dataObj.month=$('input[name=“month”]').val();dataObj.year=$('input[name=“year”]).val()??请让我知道不,如果您希望这样做,那么它应该是这样的:dataObj={“lstIds”:selectedPricingTierId,“month”:$('input[name=“month”]).val(),“year”:$('input[name=“year”]).val();我已经更新了一个答案,以便通过代码高亮显示让您看得更清楚。如果这有帮助,请接受/投票回答:)谢谢,伙计,感谢你的回答
<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>
$('#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;
});