Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将额外的隐藏变量传递给jQuery/Ajax Post dataObj?_Jquery_Ajax_Jsp - Fatal编程技术网

如何将额外的隐藏变量传递给jQuery/Ajax Post dataObj?

如何将额外的隐藏变量传递给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

朋友

我有以下jQuery ajax Post调用

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;
});