$.post()+struts2

sd6221637123 2013-01-10 02:18:39
我只写重点代码:
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页面重写,一切的一切,都好迷茫,请知道的朋友帮忙解决一下。。感激不尽。
...全文
213 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
simplestbest 2013-01-11
  • 打赏
  • 举报
回复
学习下~这些代码看起来就头大。。。
sd6221637123 2013-01-11
  • 打赏
  • 举报
回复
整出来了。真不容易。谢谢各位好心热心以及其他目的的各路朋友。
sd6221637123 2013-01-10
  • 打赏
  • 举报
回复
引用 12 楼 cqslideng 的回复:
你提交表单,根本就不是AJAX,而是页面跳转,页面跳转他还执行回调函数,那就怪了。
你误解我的意思了。。。我提交表单之后,关闭JSP网页,但是并不重启动服务器,在从新打开这个JSP页面,回调函数就会失灵。。我指的是这个 当我关闭服务器之后,在打开,这个回调函数,就会执行。
cqslideng 2013-01-10
  • 打赏
  • 举报
回复
你提交表单,根本就不是AJAX,而是页面跳转,页面跳转他还执行回调函数,那就怪了。
sd6221637123 2013-01-10
  • 打赏
  • 举报
回复
谁能帮我看看啊。。真心不明白到底怎么回事。。。连问题都找不到。。哎
sd6221637123 2013-01-10
  • 打赏
  • 举报
回复
引用 8 楼 sky_too 的回复:
时间戳:var url="idCardToEmpActualSalary?&_dc="+new Date().getTime(); 再设置 cache: false,试一下
还有别的办法了吗?
sd6221637123 2013-01-10
  • 打赏
  • 举报
回复
引用 8 楼 sky_too 的回复:
时间戳:var url="idCardToEmpActualSalary?&_dc="+new Date().getTime(); 再设置 cache: false,试一下
设置过了不行,JSP页面设置了,ACTION也设置了。。无奈
streamcc 2013-01-10
  • 打赏
  • 举报
回复
时间戳:var url="idCardToEmpActualSalary?&_dc="+new Date().getTime(); 再设置 cache: false,试一下
sd6221637123 2013-01-10
  • 打赏
  • 举报
回复
各路大神 小弟给跪了。。知道怎么个情况的朋友告诉我一下吧。。 各种方法都试验过了,重写JSP,重写代码,URL后面加上时间戳,根本都不行。。
xylovemxy 2013-01-10
  • 打赏
  • 举报
回复
帮顶。。。难啊,还要自己申请账号才能继续发帖子,想哭了都。。谁知道答案赶快告诉我吧。。谢谢了 等到何时答案马上给分。。不拖泥带水。
sd6221637123 2013-01-10
  • 打赏
  • 举报
回复
引用 2 楼 ganchengjie 的回复:
var url="idCardToEmpActualSalary"; 提示:url后面加个时间戳。。。搞定 还是了解下异步提交的原理!
idCardToEmp = function(){ var timestamp = new Date().getTime(); var url="idCardToEmpActualSalary?"+timestamp; var idCard = $("#idCard").val(); $.post(url,{"idCard":idCard},callBack,'json'); } 这样也不行,url后面加个问号,然后放上时间戳。 就像验证码那样,可是这个行不通呀
sd6221637123 2013-01-10
  • 打赏
  • 举报
回复
引用 2 楼 ganchengjie 的回复:
var url="idCardToEmpActualSalary"; 提示:url后面加个时间戳。。。搞定 还是了解下异步提交的原理!
idCardToEmp = function(){ var timestamp = new Date().getTime(); var url="idCardToEmpActualSalary"+timestamp; var idCard = $("#idCard").val(); $.post(url,{"idCard":idCard},callBack,'json'); } 这样还是不行啊。根本没反应了。
sd6221637123 2013-01-10
  • 打赏
  • 举报
回复
引用 2 楼 ganchengjie 的回复:
var url="idCardToEmpActualSalary"; 提示:url后面加个时间戳。。。搞定 还是了解下异步提交的原理!
什么是时间戳??我确实刚学jQuery没多久~~大侠火眼金睛一眼看穿 ,请明细指点一下
杰仔仔哦 2013-01-10
  • 打赏
  • 举报
回复
var url="idCardToEmpActualSalary"; 提示:url后面加个时间戳。。。搞定 还是了解下异步提交的原理!
sd6221637123 2013-01-10
  • 打赏
  • 举报
回复
小弟跪谢了,自己真的心有余而力不足。。不知道哪里有问题,知道的朋友,帮帮忙吧。。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧