今天发现jquery的表单不能提交,而且只在ie6下有这个问题。
参考网上的一些资料,还是不行,最后看了看此篇文才解决。
任何事情,还是得了解原理啊,否则,稍有变化,就玩不转了。
本篇又进行了更新和总结。
BUG描述:
页面是用JavaScript准备数据填写Form然后提交。然而,在IE6下通过JavaScript提交数据时页面没有反应(也没有提示)!?奇怪的是,在FireFox/Opera下面一切正常。
BUG分析:
首先:接到BUG后,先在测试机上重现了BUG,了解测试人员的操作步骤,然后在研发的机子上重现BUG。
其次:对BUG进行了跟踪。
起初认为是程序的那个地方有逻辑错误,检查代码无误。尝试用多种浏览器测试,发现在IE7/8、FireFox、Opera、360浏览器下正常,唯独IE6下不正常, 所以排除了逻辑错误这个原因;
上网搜索发现IE6下如果是用<input type="submit"/>按钮,则能正常提交数据,若是通过JavaScript脚本:formElement.submit(),则会提交失败,网上提出了使用setTimeout()的办法来解决;
进一步深入发现, <a/>有个链接属性 href , 而form也有一个页面请求属性 action, 当两属性同时存在时, 点击<a/>当然会优先<a/>的href链接,但如果是 <a href="javascript:;" ></a>, 又会是什么情况呢? 实践证明IE7.0+ , FF3.0+, Opera9.6+ 均能正确处理, 忽略<a/>的href, 执行表单的submit动作, 唯有 IE6 仍坚持着自己的原则, 只要有href , 就只尝试执行链接 href , 除非你的<a/>标签中去掉 href属性, 但去掉 href 你将发现IE 下将不会出现下划线;看来是因为 ie6 执行默认动作引起的。
小结问题:
<a href="javascript:void(0)" onclick="method_xxx()"/>
其他浏览器,如果在method_xxx()中提交了表单,则表单可以提交,不在执行href。
但在ie6中,先执行method_xxx(),即使是method_xxx中提交了表单,依然执行href的语句
目前解决方法:
第一种方法:去掉a标签的href属性:
<a class="bt_3" style="cursor:pointer;" id="btnSubmit1" onclick="submitPage()">提交</a>
这种方法根本没有href属性,用style="cursor:pointer;" 产生手型图标来模拟。
第二种方法:在onclick中返回false,阻止执行href
<a class="bt_3" href="javascript:void(0)" id="btnSubmit1" onclick="submitPage();return false;">提交</a>
onclick 返回 false ,阻止浏览器的默认行为。也可以达到相同的目的
第三种方法:不用onclick,直接执行href(本人想的哦,而且实验过了)
<a href="javascript:method_xxx()"/>
这3个方法,够用了的,亲们,要优先明白原理哦。
相关推荐
闲的时候亲自测试了一番,发现chrome竟然真的不支持form.submit,测试的时候用的是Jquery的,也不支持,于是乎研究了半天,终于找到了一个解决办法。 //获取form表单的id var form=$('#myform').val(); //获取...
- 0000760: UniDBLookupXXX: KeyField value submit bug - 0000761: UniEdit and KeyXXX event bug - 0000759: UniDBLookupXXX: KeyField value problem 0.83.0.811 +-----------------------------------------...
jQuery团队发布了jQuery 1.8.2版本。 该版本主要修复之前两个版本中的一些bug和性能衰退问题,包括: ...Event:修复了IE8中 $(“form”).live(“submit”, fn) 语句没有被”submit”>所激发的问题。
jQuery1.2 API 中文版折叠展开折叠全部展开全部 英文说明 核心jQuery 核心函数 jQuery(expression,[context]) jQuery(expression,[context]) 这个函数接收一个包含 CSS 选择器的字符串,然后用这个字符串去匹配一组...
--[if lte IE 8]><style index="index" >#head{height:480px\9}.s_form{top:260px}</style><![endif]--><!--[if IE 8]><style index="index" >#u1 a.mnav,#u1 a.mnav:visited,#u1 a.lb,#u1 a.lb:visited,#u1 a.pf,#...
IE用户无法在线查看本文档,请下载jQuery API Version1.5 中文版AIR客户端查看,或者使用chrome,safari,firefox,opera等浏览器查看!!! jQuery 1.5 API Cheat Sheet来源 Selectors Basics #id element .class, ...
formPlugin based on jQuery and json2.Simple form submit plugin based on jQuery 1.8.x && json2.jsSupport Firefox, Chrome, IE 8 && high version of IEThis plugin build under utf-8 encoding environmentYou...
--也就是说生成的input的type不能是"submit",而这个限制在有些情况下是不可原谅的。 --我们做了优化,现在要使一个Asp.net的按钮能够AJAX提交,你不需要做任何设置(PageManager的属性EnableAjax为true即可,这...
jQuery就是如此强大,你可以轻易地找到DOM中的任何元素,而这也是jQuery设计之初query的真实含义(查询)。 编辑本段Jquery对象 jquery提供了很多便利的函数,如each(fn),但是使用这些函数的前提是:你使用的对象...
-修正IE7下不能以下划线作为CSS中类名的前缀的BUG(feedback:Steve.Wei)。 -添加定时器控件Timer,用来定时发起AJAX请求。 +2009-09-06 v2.1.0 -Button的Pressed属性值能够正确的反映客户端的变化。 -优化...
//document.writeln ('<dd>06月21日 修复IE6下兼容问题</dd>'); //document.writeln ('<dd>06月01日 懒人图库2012新版上线</dd>'); //document.writeln ('<dd>05月26日 新增北方网通服务器</dd>'); //document....
项目背景:.Net 3.5+MySQL+jQuery+WebService 在公司做这个项目已经6个多月了,总结一些问题,也算是抛砖引玉吧,希望园子里更多的朋友一起分享一些技巧。 1、 WebService方法返回值不能为void。 当WebService方法...
Metronic 拥有简洁优雅的 Metro UI 风格界面,6 种颜色可选,115个模板页面,65个JQuery插件,包括图表、表格、地图、消息中心、监控面板等后台管理项目所需的各种组件,完美兼容IE8等各种浏览器。手机,平板,电脑...
$ptd $ptd 是一个小型的 javascript 库。 $ptd 的目标是只拥有对程序员有用的函数,并且用纯 javascript... document.getElementById('#new_user_form').addEventListener('submit', function(event){ event.preven
Fixed: Login Form Submit Issue Metronic Frontend(LTR & RTL versions): Update: Bootstrap 3.0.2 New: Header Fixed Page Fixed: Typo in style.css Fixed: FAQ page wrong tab active Version 1.5.3 – 8 ...