`
习惯在马桶上思考
  • 浏览: 112839 次
  • 性别: 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的解决方案

    最近看到Q群里有人说chrome(谷歌浏览器)不支持form.submit方法,求解决办法。闲的时候亲自测试了一番,发现chrome竟然真的不支持form.submit,测试的时候用的是Jquery的,也不支持,于是乎研究了半天,终于找到了...

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

    今天用chrome提交一个表单时,发现一个奇怪的问题: 代码如下: //提交...需要重新加载页面后才可以提交,而这个问题在Firefox,IE下没有出现。 马上Google了一下发现这是webkit内核浏览器的共有特性,这样做是为了防止表

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

    博文链接:https://clarancepeng.iteye.com/blog/112040

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

    代码如下 复制代码代码如下: &lt;!... &lt;head&gt; &lt;title&gt;Button在Form中具有submit的特性&lt;/title&gt;...meta charset=”utf-8″&...非IE6、7中会依次弹出 1, 3。说明依次触发了button的click事件,且自动将for

    ASP.NET无刷新上传.rar

    //提交前去掉form file.form && $$E.addEvent(file.form, "submit", $$F.bind(this.dispose, this)); //插入form file.parentNode.insertBefore(form, file).appendChild(file); this._form = ...

    form-request-submit-polyfill

    在提交参数可以用来指向一个特定的提交按钮,其formaction , formenctype , formmethod , formnovalidate和formtarget属性可以影响提交。 此外,在构建用于提交的条目列表时,将包括提交者; 通常,不包括按钮。...

    ASP.NET基于Ajax的Enter键提交问题分析

    html form只有一个TextBox, 没有submit按钮, 点Enter 提交form. B. &gt;1个TextBox, 没有submit按钮, 点Enter ,form没有响应。 C. 页面有一个(或多个)submit按钮, 点Enter, 触发第一个submit 按钮click。 2. ...

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

    如: 代码如下: document.formname.submit(); return false; 以后要注意了 后面尝试了另一种方法: 代码如下: if ($(“#formid”).validationEngine(“validate”)){ document.getElementById(“formid”).submit(); ...

    Ctrl+Enter提交内容信息

    true:falseif (ie){function ctlent(eventobject){if(event.ctrlKey && window.event.keyCode==13){this.document.form1.submit();}}}[removed] &lt;form action=”http://www.jluvip.com/index.html” method=POST...

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

    本文实例讲述了IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法。分享给大家供大家参考,具体如下: 经常我们用表单提交东西,在提交后,浏览器会自动记录你输入的东西,下次你再输入的时候,可以重新选择,...

    Ext Js权威指南(.zip.001

    3.2.3 在ie 8或ie 9中调试 / 83 3.3 在chrome中调试 / 84 3.4 调试工具的总结 / 84 3.5 调试技巧 / 85 3.6 本章小结 / 89 第4章 ext js的基础架构 / 90 4.1 ext js框架的命名空间:ext / 90 4.1.1 概述 / 90...

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

    dreamweaver上PHP网站开发相关插件

    Submit Form.mxp 当你在下拉菜单中选择一项条件后会自动转向另一页。 Form Auto Clear.mxp 自动清除文本域里面的默认文字。 Linecraft Highlight-Restore Form.mxp 当鼠标点击或离开一个表单元素时,改变其背景...

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

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

    ExtAspNet_v2.3.2_dll

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

    自己碰上的IE8兼容笔记

    1、IE8的getElementById只支持id,不支持name 如:&lt;...标签,默认是会提交Form的,因为IE8的&lt;button&gt;标签的type默认是submit的 所以要么设置一下type=button,要么设置onclick的时候,return false;

    javascript 键盘事件总结 推荐

    不过在IE6,safari4,ff3.5,opera10,chrome中,按Enter,不但激发form的submit事件,同时也会激发提交按钮的onclick,激发顺序为提交按钮的 onclick → form 的 onsubmit。 键盘事件 键盘事件 [Ctrl+A 全选 ...

    PHP动态网站开发插件

    为表格添加序号,不支持动态表格。 Live clock.mxp Download 点击下载 为我们插入一个动态的时钟。 Kaosweaver PHP Upload.mxp Download 点击下载 把图片上传到你的网站。 PHP Date and time.mxp Download 点击...

    不同浏览器对回车提交表单的处理办法

    (注释1) 所以,如果要控制提交行为的话(比如,提交前检查必填项是否已填),可以在type=”submit”的“input”后添加Javascript“onXXX(比如onClick)”事件。而如果需要用异步交互来检测相关字段,则无效了。...

Global site tag (gtag.js) - Google Analytics