工作中碰到要把两个form里面的参数同时传递到后台的问题,也就是同时传递多个条件到后台进行处理时怎么办,这是我自己搜索并总结了一下方法,如有更好的欢迎指正:
//当前页显示记录数更改时:
$("#pageCount").change(function () {
var url="${createLink(controller: '#', action: params.action)}";
var maxValue = $("#pageCount>option:selected").html();
var beginSearchDateValue=$("#beginSearchDate").val();
var endSearchDateValue=$("#endSearchDate").val();
var q2Value=$("#q2").val();
var q4Value = $("#q4").val();
var q5Value = $("#q5").val();
var q6Value = $("#q6").val();
var q7Value = $("#q7").val();
var params={max:maxValue,q2:q2Value,q4:q4Value,q5:q5Value,q6:q6Value,q7:q7Value,beginSearchDate:beginSearchDateValue,endSearchDate:endSearchDateValue}
passParamsByPost(url,params);
});
//两个form中都有多选框时:
function selectProjectItemAndExportcsv() {
var subValue="";
var sub1Value="";
var url="${createLink(controller: '#', action: 'exportToExcel')}";
$("input[type='checkbox'][name='sub']:checked").each(function(){
subValue+=this.value + ','; //遍历被选中CheckBox元素的集合 得到Value值
});
$("input[type='checkbox'][name='sub1']:checked").each(function(){
sub1Value+=this.value + ','; //遍历被选中CheckBox元素的集合 得到Value值
});
var params={sub:subValue,sub1:sub1Value}
passParamsByPost(url,params);
$('#selectProjectItem').modal('hide');
}
//供调用方法:把参数读取后,重新新建一个form,传入url和参数再提交
function passParamsByPost(url,params) {
var temp=document.createElement("form");
temp.action=url;
temp.method="POST";
temp.style.display="none";
if(params != null){
for(var x in params) {
var opt=document.createElement("input");
opt.name=x;
opt.type='hidden';
opt.value=params[x];
temp.appendChild(opt);
}
}
temp.submit();
return temp;
}