我的代码写的这么烂我也很无奈啊
1. 发起请求之前,如果没有选中任何卡券,要alert
2. 发起请求时,要alert是否确认删除这些卡券
3. 发起请求时用loading()和回调函数时条用closeloading()两个效果
4. 删除成功后,要将隐藏表单的pageNo置为1并且要重新加载页面。
这些我都没有。
在处理这个请求的时候
我的操作是向服务器传入一个数组,服务器对这个数组进行迭代。
书华大佬的操作是向服务器传入一个用,
分割的字符串,在卡券实体类中添加一个list属性来保存这些card_id,然后在Mapper.xml
中进行迭代。
JQuery获取选中的按钮
//表单的内容
<input type="checkbox" name="chkgroup" value="${tfFCardcoupons.cardId}" cardStatus="${tfFCardcoupons.cardStatus}"/>
/**
* 删除选中的卡券
*/
function deletecardCoupons(){
var chkboxGroup = $("[name='chkgroup']").filter(":checked");
var cardIdGrp = new Array();
for(var i = 0 ; i<chkboxGroup.length;i++){
cardIdGrp.push(chkboxGroup[i].value);
}
//filer返回的数组是一条条<input>标签的内容
confirmx('您确定删除吗?',function(){
$.ajax({
url:basePath+"/deletecardCoupons",
data:{cardIdGrp:cardIdGrp},
dataType:json,
traditional:true,
success:function(data){
alertx(data.message);//显示提示
$('#searchForm').submit();//刷新页面
}
});
});
}
$("input[name='chkbox']:checked").each(function(index,ele){alert($(this).val());})//这句就能获得到选中的checkbox标签的value值。
$("input[name='chkbox']").filter(":checked").each()..
//也是等效的。
var arr=$("input[name='chkbox']:checked");
arr[0]保存的是<input type="checkbox" name="chkbox" value="1">
只能通过arr[0].value取值
而不能通过arr[0].val()取值
还是挺奇特的。
书华大佬是用
confirmx("您确定要删除选择的行吗?",function () {
loading();
$.ajax({
url: ctx + "/o2o/cardcouponsManager/deletecardCoupons",
type: "POST",
data: {cardIds : ids.join(",")},
dataType: "json",
success: function (data) {
closeLoading();
if (data.resultCode == 'succ') {
alertx(data.resultMsg, function () {
$("input[name='pageNo']").val(1);
window.location.reload();
});
} else {
alertx(data.resultMsg);
}
},
error: function () {
closeLoading();
alertx("保存卡券信息失败!");
}
});
});
join(“,”)方法将数组转化为字符串发给客户端。
Mybatis中对传入的list进行循环
AND CARD_ID IN
<foreach collection="cardIds" index="index" item="item" open="(" separator="," close=")">
#{item,jdbcType=DECIMAL}
</foreach>