`
fantaxy025025
  • 浏览: 1309126 次
  • 性别: 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个方法,够用了的,亲们,要优先明白原理哦。

 

分享到:
评论

相关推荐

    jquery.form.js

    `jquery.form.js`依赖于jQuery核心库,如压缩包中的`jquery-3.2.1.min.js`。确保在引入`jquery.form.js`之前加载jQuery,以确保插件的正常工作。同时,由于`jquery.form.js`提供了丰富的API和事件,它可以与其他...

    jquery-form - jQuery表单生成插件

    总之,jQuery-form是一个功能强大且易于使用的插件,对于任何需要处理表单提交的前端开发人员来说,都是一个不可或缺的工具。它简化了Ajax表单提交的实现,同时也提供了丰富的定制选项,以适应不同项目的具体需求。...

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

    实际上,`form.submit()`在Chrome中是完全可行的,但可能在某些特定场景或与某些库(如jQuery)结合使用时会出现问题。 首先,我们要明确一点:Chrome确实支持`form.submit()`方法。如果遇到无法正常工作的状况,...

    jquery.form.zip

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

    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.form文件上传及管理

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

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

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

    jquery-1.12.4.zip

    jQuery 1.12.4主要针对老版本浏览器进行了优化,确保在IE6-8等老旧浏览器上的良好运行。同时,它修复了一些已知的bug,提高了性能,并保持了与1.12.x系列的向后兼容性。 四、使用jQuery 1.12.4的实际案例 在实际...

    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 选择器的字符串,然后用这个字符串去匹配一组...

    jQuery_boxy弹出层对话框插件中文演示及讲解

    页面左侧有固定定位的导航栏(IE6为绝对定位),方便用户快速跳转到相应的内容。页面主体部分是逐句翻译的官方文档,尽管有些句子可能较为拗口,但仍然有助于读者理解插件的使用方法。 1. 插件的使用: - 利用...

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

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

    Submit-an-HTML-Form-Via-Ajax:通过 Ajax 提交 HTML 表单的简单演示

    在现代Web开发中,Ajax(Asynchronous JavaScript and XML)技术被广泛用于实现页面无刷新的数据交互,提升用户体验。本文将详细讲解如何通过...在实际项目中,还可以结合jQuery或其他库简化Ajax操作,提高开发效率。

    三星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,#...

    JQ实现--TAB切换登录界面(兼容至IE8)

    在本文中,我们将深入探讨如何使用jQuery(简称为JQ)来实现一个兼容至IE8的TAB切换登录界面。在Web前端开发中,创建交互式的用户界面是至关重要的,而TAB切换功能则能够提高用户体验,使得用户能够在不同的内容区域...

    jQuery.form插件的使用及跨域异步上传文件

    而使用jQuery.form插件,可以将以AJAX形式异步提交表单,不需要跳转页面,这对于用户体验而言是一种提升。使用该插件,开发者可以很容易地通过简单配置实现文件的异步上传。 接下来是跨域上传的核心问题。由于...

    jquery formValidator

    这个插件在Web开发领域中颇受欢迎,因为它可以方便地添加验证规则,避免用户提交无效或不完整的数据,从而提升用户体验。 **一、功能特性** 1. **易用性**:`jQuery FormValidator`通过简单的配置就能实现各种复杂...

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

    浏览器兼容性问题

    - **问题描述**:实现Div元素的垂直居中在不同浏览器中也可能存在兼容性问题。 - **解决方法**:使用Flexbox或者Grid布局来实现垂直居中。 ##### 10. margin加倍的问题 - **问题描述**:在IE6及以下版本中,有时会...

    个人CSS设计兼容性问题总结教程

    另外,IE6不支持除`&lt;a&gt;`标签外的其他标签的`:hover`事件,可以通过jQuery或者其他JavaScript库进行模拟。 在IE6中,`height:100%`可能无效,但通过设置`position:absolute;`可以解决这个问题,不过仅限于IE7、FF等...

Global site tag (gtag.js) - Google Analytics