JQuery使用$.ajax和checkbox实现下次不在通知功能
XXX平台要实现一个功能,公告弹出页面上使用复选框设置不再通知此类公告。
原理:<inputtype="checkbox"id="isSelect"name="isSelect"value="10"onclick="javascript:noTips();"/>,checkbox选中后提交表单,那么struts2的Action中isSelect就为'10',不选中提交表单isSelect为null。
1.jsp页面
<formid="form1">
<divclass="jf_tanchu">
<divclass="jf_tanchutit">${bussinessNotice.noticeTitle}</div>
<divclass="jf_tanchubox">
<divclass="jf_tanchubox_right">
公告类型:<v:dcolorcode="${bussinessNotice.noticeType}"/>
发布时间:<fmt:formatDatevalue="${bussinessNotice.createDate}"pattern="yyyy-MM-dd"/>
</div>
${bussinessNotice.noticeInfo}
</div>
</div>
<s:iftest="bussinessNotice.noticeType=='25'||bussinessNotice.noticeType=='63'||bussinessNotice.noticeType=='64'">
<div>
<inputtype="hidden"name="noticeType"value="${bussinessNotice.noticeType}"/>
<inputtype="checkbox"id="isSelect"name="isSelect"value="${bussinessNotice.noticeType}"onclick="javascript:noTips();"/>
<labelfor="isSelect">不再通知此类公告</label>
</div>
</s:if>
</form>
2.js代码
functionnoTips(){
varformParam=$("#form1").serialize();//序列化表格内容为字符串
$.ajax({
type:'post',
url:'Notice_noTipsNotice',
data:formParam,
cache:false,
dataType:'json',
success:function(data){
}
});
}
3.NoticeAction代码
/**
*checkbox不提示公告,需要修改TBussinessSet中的屏蔽状态,ajax异步请求
*/
publicvoidnoTipsNotice(){
try{
PrintWriterout=this.getResponse().getWriter();
bussinessSet=BussinessSetService.queryById(getUserId());
Stringstate="";
if(isSelect==null){//noticeType==null没有选中checkbox
state="11";
}
else{
state="10";
}
if("25".equals(noticeType)){
bussinessSet.setSaleBack(state);
}
elseif("63".equals(noticeType)){
bussinessSet.setRemittanceBank(state);
}
elseif("64".equals(noticeType)){
bussinessSet.setRemittanceOnline(state);
}
BussinessSetService.update(bussinessSet);
out.print("");
}catch(Exceptione){
log.error(e.fillInStackTrace());
}
}