设计主页 > 网站制作 > JS教程 >

JQuery使用$.ajax和checkbox实现下次不在通知功能

设计前沿收集 /  时间:2015-04-17 09:00

XXX平台要实现一个功能,公告弹出页面上使用复选框设置不再通知此类公告。
 
原理:<input type="checkbox" id="isSelect" name="isSelect" value="10" onclick="javascript:noTips();"/>,checkbox选中后提交表单,那么struts2的Action中isSelect就为'10',不选中提交表单isSelect为null。
 
1.jsp页面

<form id="form1"> 
<div class="jf_tanchu"> 
  <div class="jf_tanchutit">${ bussinessNotice.noticeTitle}</div> 
  <div class="jf_tanchubox"> 
    <div class="jf_tanchubox_right"> 
    公告类型:<v:dcolor code="${ bussinessNotice.noticeType}"/>     
    发布时间:<fmt:formatDate value="${ bussinessNotice.createDate}" pattern="yyyy-MM-dd"/> 
    </div> 
    ${bussinessNotice.noticeInfo} 
  </div> 
</div> 
<s:if test="bussinessNotice.noticeType=='25'||bussinessNotice.noticeType=='63'||bussinessNotice.noticeType=='64'"> 
<div> 
  <input type="hidden" name="noticeType" value="${bussinessNotice.noticeType}"/> 
  <input type="checkbox" id="isSelect" name="isSelect" value="${bussinessNotice.noticeType}" onclick="javascript:noTips();"/> 
  <label for="isSelect">不再通知此类公告</label> 
</div> 
</s:if> 
</form> 

 2.js代码

 function noTips(){ 
  var formParam = $("#form1").serialize();//序列化表格内容为字符串 
  $.ajax({ 
    type:'post',   
    url:'Notice_noTipsNotice', 
    data:formParam, 
    cache:false, 
    dataType:'json', 
    success:function(data){ 
    } 
  }); 
} 
 

 3.NoticeAction代码

/** 
 * checkbox不提示公告,需要修改TBussinessSet中的屏蔽状态,ajax异步请求 
 */ 
public void noTipsNotice(){ 
  try { 
    PrintWriter out = this.getResponse().getWriter(); 
     
    bussinessSet = BussinessSetService.queryById(getUserId()); 
    String state = ""; 
    if(isSelect==null){//noticeType==null没有选中checkbox 
      state = "11"; 
    } 
    else{ 
      state = "10"; 
    } 
    if("25".equals(noticeType)){ 
      bussinessSet.setSaleBack(state); 
    } 
    else if("63".equals(noticeType)){ 
      bussinessSet.setRemittanceBank(state); 
    } 
    else if("64".equals(noticeType)){ 
      bussinessSet.setRemittanceOnline(state); 
    } 
    BussinessSetService.update(bussinessSet); 
     
    out.print(""); 
  } catch (Exception e) { 
    log.error(e.fillInStackTrace()); 
  } 
}