原创 IE6中Form.submit不提交的问题收藏

新一篇: 关于关系矩阵的判断(C) | 旧一篇: 关于边界对齐的判断

今天碰到一个很有趣的问题。
用From向提交数据,一是用<input type="submit"/>按钮,一是通过JavaScript脚本:formElement.submit()。不管哪种方法都是很简单的。但是今天我就在这个简单的地方遇到了麻烦。

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

刚开始,我怀疑是程序的那个地方有逻辑错误,但是经过仔细检查后排除了。上网搜一下,也没有什么结果。

再次思考这个问题,难道是因为Form的数据还没有准备好?因为我的测试数据大概有十几K的样子,而微软的东西总是喜欢异步处理,那么就有这样的可能:写 入数据的函数返回并执行下面的submit(),但是实际上在IE内部并没有完成整个过程,从而导致submit()失败(但是为啥就没个提示呢)。

试一下,在submit()前先等一下,让出处理时间:
    ......
    function doSubmit(){formElem.submit();}
    setTimeout(doSubmit,0)
    ......

转一下,OK!!或许就是这个样子。

最后,再鄙视一下 IE6 并期待 IE7 。

发表于 @ 2007年07月15日 23:35:00|评论(loading...)|编辑

新一篇: 关于关系矩阵的判断(C) | 旧一篇: 关于边界对齐的判断

评论

#gsprin 发表于2007-07-30 20:19:21  IP: 219.239.98.*
我也遇到了同样的问题,但是一直解决不了,您能把解决方法说得就再详细点吗,谢谢
#rushman 发表于2007-07-31 11:38:05  IP: 58.218.77.*
//在这里提交数据
function doSubmit(){formElem.submit();}

//提交前的准备工作
......
//提交前先等一下
//等待时间为 0
setTimeout(doSubmit,0);

要理解为什么要这么做,可以参考一下操作系统的进程调度算法。
#chiefsailor 发表于2008-04-10 16:33:36  IP: 159.226.3.*
嗯,问题解决了,3x
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © rushman