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