直接使用jquery的$.ajax()异步提交时,如果data中含有Array(如提交checkbox时),action不能直接使用List接收array。
html:
<input type="checkbox" name="id" value="1">
<input type="checkbox" name="id" value="2">
<input type="checkbox" name="id" value="13">
<input type="checkbox" name="id" value="14">
js:
$("input[type='checkbox'][name='id']:checked").each(function(){
id.push($(this).val());
});
$.ajax({
type:"post",
url:"teacherDisable.action",
dataType:"json",
success:function(data){
if(data.success == true){
alert(data.message);
window.location.reload();
}else{
alert(data.message);
}
},
data:{id:id}
});
浏览器显示提交数据:
参数application/x-www-form-urlencoded
id[] 13
id[] 14
源代码
id%5B%5D=13&id%5B%5D=14
但是后台接收变量List<Integer> id为空
解决方案
1:data:{id:id}改为data:$.param({id:id},true),对参数进行序列化
2:改变js接收id的方法,将id转化为字符串
$("input[type='checkbox'][name='id']:checked").each(function(){
id += "id=" + $(this).val() + "&";
});
3:改变html中checkbox的name
<input type="checkbox" name="id[0]" value="1">
<input type="checkbox" name="id[1]" value="2">
<input type="checkbox" name="id[2]" value="13">
<input type="checkbox" name="id[3]" value="14">
$.ajax()改为简洁的$.post():
$.post("teacherDisable.action",$("input[type='checkbox']:checked"),function(data){
if(data.success == true){
alert(data.message);
window.location.reload();
}else{
alert(data.message);
}
});
三种方法都可以使action通过set()方法获取参数,第一种最为方便,对参数进行序列化即可,第二种方法比较简陋,将checkbox的值拼装为字符串,第三种需要更改html中checkbox的name,而且如果只选中id[3],那么后台得到的是一个长度为4的List,其中0~2为null,只有第三个有值
分享到:
相关推荐
jquery checkbox 选中 取消 checkbox多选
Jquery全选反选Checkbox 简单好用 复用性很好 欢迎下载
自动动手写了个操作checkbox,里面包括全选、全不选、反选、获取选中值四个功能...
昨天网上找了很多关于设置select checkbox radio只读的,都没办法满足要求,自己写了一个
js ajax 提交checkbox 根据checkbox的值和是否被checked将所有checkbox的选项提取出来并合并成一个字符串提交服务器端,服务器端根据间隔符将所有选项值分开然后处理。示例为选择ip地址的形式。
jQuery制作全选CheckBox 的两种代码 还不错
jQuery的高性能TreeView源码(带CheckBox) 1:支持静态的树,即一次性将全部数据加载到客户端。 2:异步树,即一次只加载一级或若干级节点,子节点可以异步加载数据。 3:Checkbox树(可能是静态树也可能是异步树...
基于jQuery的Checkbox精美样式插件 .
jquery动态生成checkbox 设置一行最多显示几个checkbox 获取checkbox选中项
jquery 树形 checkbox jQuery(document).ready(function(){ jQuery(".mytree").checkboxTree({ collapsedarrow: "images/checkboxtree/img-arrow-collapsed.gif", expandedarrow: "images/checkboxtree/img-...
在jquery 下实显checked 联动 当input checkbox选中时自动判断上级下级并选中
自己编写的一个jquery多选checkbox下拉框,已经封装好了,直接调用就可以
jQuery 对checkbox的操作
jQuery如何判断checkbox(复选框)是否被选中
页面上通过一个checkbox实现全选与反选
JQuery操作checkbox、radio等示例
JQuery 判断checkbox是否选中,checkbox全选,获取checkbox选中值
jquery获取checkbox选中的值,包括全选 取消全选 反选 选中奇数行 获取选中的值
JQuery对checkbox的多选,全选,反选操作样例