本文主要是介绍jquery提交时的灵异事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
案件现场情况:
1. 页面
<table class="table-basic table-bordered"><form id="personSetForm" method="post"><tbody><input type="hidden" name="processDefinitionId" value="${processDefinitionId!''}"/><input type="hidden" name="modelId" value="${modelId!''}"/><input type="hidden" name="taskId" value="${taskId!''}"/><input type="hidden" id="rolesHidden" name="roles"/><input type="hidden" id="usersHidden" name="users"/><input type="hidden" id="groupsHidden" name="groups"/></form><tr>
<td >角色:</td>
</tr>
</tbody> </table>
2. 互动的js
$("#personSetForm").attr("action",url);
$("#personSetForm").submit();
3.运行的结果
服务器端获取不到表单里面的隐含域
问题分析
刚开始大家都认为是灵异事件,因为之前都没有发现过类似的问题.好吧,既然问题出现了,就要解决它.
1. 服务器端问题怀疑与排除
总以为是服务端的代码写的有问题.浏览器已经成功的传参数了.但是这种猜测被牛人们否决了.服务器端的写法是木有问题滴.
2.客户端问题怀疑与排除
A) 浏览器问题
有些童鞋的流量器可以正常跑,有些浏览器跑异常.客户端问题范围确定.
B) submit的提交是否有异常
谷哥不少资料,发现jquery使用submit提交表单,里面的input域不能有submit元素,这样会导致提交失败.这个上面的代码上看,是没有这个submit的.所以不是这个问题.
C) 是否是html的代码写的不规范导致提交异常
将form表单移动到table元素外面,再测试后,发现数据传输正常了(所有童鞋的浏览器访问正常).
初步结论: jquery的submit方法和浏览器版本还是有不少耦合的地方,最好的解决方法是,js的写法,html的页面最好要进行规范.
这篇关于jquery提交时的灵异事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!