`
fantaxy025025
  • 浏览: 1249129 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

IE6中Form.submit不提交的问题-Jquery也不行

 
阅读更多

 

今天发现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的解决方案

    闲的时候亲自测试了一番,发现chrome竟然真的不支持form.submit,测试的时候用的是Jquery的,也不支持,于是乎研究了半天,终于找到了一个解决办法。 //获取form表单的id var form=$('#myform').val(); //获取...

    unigui0.83.5.820

    - 0000760: UniDBLookupXXX: KeyField value submit bug - 0000761: UniEdit and KeyXXX event bug - 0000759: UniDBLookupXXX: KeyField value problem 0.83.0.811 +-----------------------------------------...

    jquery 最新版框架下载(1.32-1.8.2)

    jQuery团队发布了jQuery 1.8.2版本。 该版本主要修复之前两个版本中的一些bug和性能衰退问题,包括: ...Event:修复了IE8中 $(“form”).live(“submit”, fn) 语句没有被”submit”&gt;所激发的问题。

    jQuery完全实例.rar

    jQuery1.2 API 中文版折叠展开折叠全部展开全部 英文说明 核心jQuery 核心函数 jQuery(expression,[context]) jQuery(expression,[context]) 这个函数接收一个包含 CSS 选择器的字符串,然后用这个字符串去匹配一组...

    三星9305收索

    --[if lte IE 8]&gt;&lt;style index="index" &gt;#head{height:480px\9}.s_form{top:260px}&lt;/style&gt;&lt;![endif]--&gt;&lt;!--[if IE 8]&gt;&lt;style index="index" &gt;#u1 a.mnav,#u1 a.mnav:visited,#u1 a.lb,#u1 a.lb:visited,#u1 a.pf,#...

    jQuery 1.5 API 中文版

    IE用户无法在线查看本文档,请下载jQuery API Version1.5 中文版AIR客户端查看,或者使用chrome,safari,firefox,opera等浏览器查看!!! jQuery 1.5 API Cheat Sheet来源 Selectors Basics #id element .class, ...

    formPlugin:一个基于jQuery && json2的表单数据json方式提交的插件

    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...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    --也就是说生成的input的type不能是"submit",而这个限制在有些情况下是不可原谅的。 --我们做了优化,现在要使一个Asp.net的按钮能够AJAX提交,你不需要做任何设置(PageManager的属性EnableAjax为true即可,这...

    jquery插件使用方法大全

    jQuery就是如此强大,你可以轻易地找到DOM中的任何元素,而这也是jQuery设计之初query的真实含义(查询)。 编辑本段Jquery对象  jquery提供了很多便利的函数,如each(fn),但是使用这些函数的前提是:你使用的对象...

    ExtAspNet_v2.3.2_dll

    -修正IE7下不能以下划线作为CSS中类名的前缀的BUG(feedback:Steve.Wei)。 -添加定时器控件Timer,用来定时发起AJAX请求。 +2009-09-06 v2.1.0 -Button的Pressed属性值能够正确的反映客户端的变化。 -优化...

    图库新版jQuery焦点图 JS代码

    //document.writeln ('&lt;dd&gt;06月21日 修复IE6下兼容问题&lt;/dd&gt;'); //document.writeln ('&lt;dd&gt;06月01日 懒人图库2012新版上线&lt;/dd&gt;'); //document.writeln ('&lt;dd&gt;05月26日 新增北方网通服务器&lt;/dd&gt;'); //document....

    前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)

    项目背景:.Net 3.5+MySQL+jQuery+WebService 在公司做这个项目已经6个多月了,总结一些问题,也算是抛砖引玉吧,希望园子里更多的朋友一起分享一些技巧。 1、 WebService方法返回值不能为void。 当WebService方法...

    Metronic v1.5.4

    Metronic 拥有简洁优雅的 Metro UI 风格界面,6 种颜色可选,115个模板页面,65个JQuery插件,包括图表、表格、地图、消息中心、监控面板等后台管理项目所需的各种组件,完美兼容IE8等各种浏览器。手机,平板,电脑...

    ptd:一个小的javascript库

    $ptd $ptd 是一个小型的 javascript 库。 $ptd 的目标是只拥有对程序员有用的函数,并且用纯 javascript... document.getElementById('#new_user_form').addEventListener('submit', function(event){ event.preven

    最新的MetroNic_1.5.4 bootstrap3.0.2模版

    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 ...

Global site tag (gtag.js) - Google Analytics