`
习惯在马桶上思考
  • 浏览: 114841 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

IE6中Form.submit不提交的问题

阅读更多

BUG描述

 

页面是用JavaScript准备数据填写Form然后提交。然而,在IE6下通过JavaScript提交数据时页面没有反应(也没有提示)!?奇怪的是,在FireFox/Opera下面一切正常

 

BUG分析

 

首先:接到BUG后,先在测试机上重现了BUG,了解测试人员的操作步骤,然后在研发的机子上重现BUG

其次:对BUG进行了跟踪。

起初认为是程序的那个地方有逻辑错误,检查代码无误。尝试用多种浏览器测试,发现在IE7/8FireFoxOpera360浏览器下正常,唯独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 class="bt_3"  style="cursor:pointer;" id="btnSubmit1" onclick="submitPage()">提交</a>  

这种方法根本没有href属性,用style="cursor:pointer;" 产生手型图标来模拟。

另一种方法:

<a class="bt_3"   href="javascript:void(0)"  id="btnSubmit1" onclick="submitPage();return false;">提交</a>  

onclick 返回 false ,阻止浏览器的默认行为。也可以达到相同的目的

 

分享到:
评论
4 楼 sttyy 2014-04-08  
问题解决了,谢谢。
3 楼 cai493199904 2013-07-17  
xiexie
2 楼 zxc847322893 2012-06-05  
嗯 今天碰到了这个问题    解决方法 很好用
1 楼 wzt_doufu 2011-07-06  
    
正在做浏览器的兼容,正好用到,谢谢……

相关推荐

    chrome不支持form.submit的解决方案

    然而,有些开发者遇到了在Chrome浏览器中`form.submit()`方法失效的问题。这个问题主要源于对Chrome浏览器特性的误解,而非Chrome本身不支持这个方法。实际上,`form.submit()`在Chrome中是完全可行的,但可能在某些...

    jquery.form.js

    2. **文件上传**:对于包含文件输入的表单,`jquery.form.js`提供了跨浏览器的文件上传支持,解决了IE和其他现代浏览器在处理文件上传时的兼容性问题。 3. **实时验证**:插件允许在用户填写表单时进行实时验证,...

    document.forms[].submit()使用介绍

    4. 模拟提交:在某些API测试或者自动化测试中,可能会使用 `document.forms[].submit()` 来模拟用户的提交行为,测试服务器的响应。 需要注意的是,使用 `submit()` 方法时要确保对可能出现的错误和异常有足够的...

    jquery.form.zip

    《jQuery Form插件在IE8中的兼容性及文件上传应用详解》 在Web开发中,JavaScript库jQuery以其简洁的API和强大的功能深受开发者喜爱。在处理表单提交和文件上传时,jQuery Form插件(jquery.form.js)为开发者提供...

    表单Form的submit事件不响应的解决方法

    此问题违反了非侵入式JavaScript(Unobtrusive Javascript)的编程原则,但出于特定需求(如自动补全功能),有时仍不得不使用`form.submit()`来直接提交表单。 ### 问题分析 早期的“原始”注册方式涉及两种方式,...

    IE中jquery.form中ajax提交没反应解决方法分享

    从内容来看,解决IE浏览器中jquery.form插件AJAX提交不工作的问题,关键在于确保响应头的Content-Type设置正确,或不明确指定该头信息以避免IE的特殊处理。此外,文章还提到了在实际开发中,对于AJAX操作的头信息和...

    在IE的模式窗口中,通过表单提交到本页,并通过javascript获取提交的参数

    标题 "在IE的模式窗口中,通过表单提交到本页,并通过javascript获取提交的参数" 描述了一种常见的Web开发技术应用场景。在Internet Explorer(IE)浏览器的特定模式下,用户通过表单填写信息并提交后,这些数据通常...

    jsp 文件上传浏览,支持ie6,ie7,ie8.docx

    4. **兼容性问题**:由于IE6/7/8等老版本浏览器存在一些特有行为或限制,因此在实现文件上传功能时需要特别注意兼容性问题。 #### 三、核心知识点详解 ##### 3.1 兼容性处理 文档中的代码示例展示了如何通过...

    ie ,火狐 文本框回车自动提交

    本文将深入探讨如何在IE和Firefox中实现文本框回车自动提交的机制,并提供详细的解决方案。 ### IE中的实现 在IE中实现文本框回车自动提交,开发者可能会遇到一些限制。默认情况下,当表单只有一个文本输入框时,...

    Chrome Form多次提交表单问题的解决方法

    这个问题在其他浏览器如Firefox和IE中通常不会出现。 问题的根源在于WebKit内核(包括Chrome和Safari)的浏览器为了防止用户意外或恶意地多次提交同一表单,采取了一种称为“防重复提交”的机制。这种机制会记住...

    form-request-submit-polyfill-main-源码.rar

    "form-request-submit-polyfill-main"是一个专门针对表单提交事件的polyfill,它旨在为不支持新特性的浏览器提供一个标准化的接口。本文将深入剖析其源码,揭示其内部工作原理。 1. **表单提交事件的标准化** 在...

    JQuery.form文件上传及管理

    在Web开发中,文件上传功能是不可或缺的一部分,而`jQuery.form`插件为开发者提供了便捷的文件上传解决方案。它结合了强大的`jQuery.js`库和`jQuery.Form.js`扩展,使文件上传变得更加简单、灵活。本篇将详细介绍...

    Button未设type属性时在非IE6/7中具有submit特性并自动提交form

    这个行为展示了`&lt;button&gt;`在非IE6/7中具有的submit特性,即即使没有明确设置`type=submit`,它仍然可以作为提交按钮来使用。 在IE6和IE7中,情况有所不同。这两个旧版本的浏览器对HTML标准的支持不够完善,可能不会...

    表单元素的submit()方法和onsubmit事件应用概述

    在网页开发中,表单(Form)是用户与服务器交互的重要工具,而`submit`方法和`onsubmit`事件则是表单控制的核心部分。本文将深入探讨这两个概念及其在实际应用中的注意事项。 首先,`submit()`方法是HTML表单元素的...

    IE 下Enter提交表单存在重复提交问题的解决方法

    在网页开发中,表单提交是用户与服务器交互的关键环节,而在Internet Explorer(IE)浏览器中,使用Enter键提交表单时可能会遇到一个常见的问题——重复提交。这可能导致数据库中的数据异常,对业务逻辑造成影响。...

    访问一个已经打开的ie

    在VB(Visual Basic)编程中,访问一个已经打开的Internet Explorer(IE)浏览器主要是通过Microsoft Internet Controls库(也称为SHDocVw库)实现的。这个库提供了对IE浏览器对象模型的访问,允许开发者控制已存在...

    jquery submit ie6下失效的原因分析及解决方法

    然而,在某些情况下,尤其是在老版本的Internet Explorer(如IE6)中,可能会遇到jQuery的`submit`事件处理函数失效的问题。本文将深入探讨这个问题的原因,并提供有效的解决方法。 首先,让我们理解问题的根源。在...

    delphi操作ie内容

    本主题聚焦于如何使用Delphi与Internet Explorer(IE)进行交互,特别是在操作IE内容,如读取、替换表单数据以及自动提交方面。在Delphi中,这通常通过ActiveX控件实现,因为IE提供了名为`SHDocVw`的库,它包含了对...

    IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法

    在IE浏览器中,当使用JavaScript脚本提交表单时,可能会遇到一个问题,即浏览器无法自动保存和提示用户之前输入过的表单数据。这个问题通常不会在其他现代浏览器(如Chrome、Firefox)中出现,但对IE用户来说是一个...

Global site tag (gtag.js) - Google Analytics