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的页面最好要进行规范.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值