日期:2014-05-17  浏览次数:20722 次

$.post()+struts2
我只写重点代码:
jsp:
<script type="text/javascript">
idCardToEmp = function(){
var url="idCardToEmpActualSalary";
var idCard = $("#idCard").val();
$.post(url,{"idCard":idCard},callBack,'json');
}

callBack = function(data){
var mess = data.message;
$("#inforDiv").html(mess);
}
</script>

<form action="addActualSalary" method="post" name="myForm">
<tr>
<td>身份证:</td>
<td><input type="text" id="idCard" name="idCard" onblur="idCardToEmp()" maxlength="18">
<div id="inforDiv"></div>
</td>
</tr>

action:
public String idCardToEmp(){
System.out.println(this.getIdCard());
        Employee employee = this.employeeService.queryEmployeeByIdCard(this.getIdCard());
if(employee != null){
   this.setMessage("有该用户");
}else{
   this.setMessage("该身份证不是内部人员");
}
System.out.println(this.getMessage());
return "ok";
}

struts.xml
<action name="*ActualSalary" class="actualSalaryAction" method="{1}">
<result name="ok" type="json"></result>
<result name="success">ActualSalary.jsp</result>
</action>

我在jsp的text里面输入身份证,然后离开该文本框,我可以获取回调函数给的信息,就是action里message
可是问题在于:我提交之后。第二次,这个回调函数就失灵了。onblur事件照样执行,$.post()照样执行,但是回调函数不在执行了,失灵了。

第一次可以有效果,只要不提交,怎么都没事,但是只要提交过一次,这个$.post()的回调函数便失灵。

反反复复研究了好久,代码重写,JSP页面重写,一切的一切,都好迷茫,请知道的朋友帮忙解决一下。。感激不尽。
jsp action callback struts

------解决方案--------------------
var url="idCardToEmpActualSalary";



提示:url后面加个时间戳。。。搞定

还是了解下异步提交的原理!
------解决方案--------------------
帮顶。。。难啊,还要自己申请账号才能继续发帖子,想哭了都。。谁知道答案赶快告诉我吧。。谢谢了

等到何时答案马上给分。。不拖泥带水。
------解决方案--------------------
时间戳:var url="idCardToEmpActualSalary?&_dc="+new Date().getTime();

再设置  cache: false,试一下