IE11-仅提交错误

Bri*_*ian 23 javascript forms internet-explorer internet-explorer-11

我在页面上有一个表单,简单如下:

<form action="form/submit" method="post">
    <button type="submit">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)

它适用于每一个浏览器,包括旧版本的IE,但在IE11中失败,标签卡在一个连续的加载循环中,在提交后永远不会改为"谢谢"页面.但是,如果我打开控制台,它就可以工作了.

我知道IE已经使用的console.log问题,并且已经在使用:

if (!window.console) {
    console = {
        log: function() {}
    };
}
Run Code Online (Sandbox Code Playgroud)

为了避免它,这似乎做得很好(如上所述,每个其他IE工作).有关问题可能存在的任何见解?

pil*_*lif 32

当表单只有没有name属性(或没有输入元素)的输入元素时,会出现问题.我在这里找到了对这个bug的引用,虽然它也发生在桌面模式而不仅仅是地铁模式,因为链接声称:

http://connect.microsoft.com/IE/feedback/details/807447/ie-11-metro-version-submitting-form-fails-if-input-tag-has-no-name-attribute

修复是<input type="hidden" name="dummy" value="something">在提交表单之前创建一个虚拟字段(具有名称和值集).

该错误发生在IE11提供的所有兼容模式中.


小智 11

我只是花了太多时间来处理这个bug.疯狂的部分是,如果您打开开发工具(f12),IE11允许表单提交.这是我在提交按钮之前放的内容:

<input type="hidden" name="ie11sux" id="ie11sux" value="<?php echo md5(microtime()."ie11sux"); ?>"/>
Run Code Online (Sandbox Code Playgroud)


Ale*_*ban 10

这是IE11中的一个错误.如果为按钮添加名称属性,则可以修复它,例如:

<button type="submit" name="foo" ...
Run Code Online (Sandbox Code Playgroud)


Tot*_*oto 7

没有命名元素的表单将导致IE11 + W8.1上的提交无限循环.要解决此问题,只需在按钮中添加属性名称:

<form action="form/submit" method="post">
  <input type="submit" name="cm" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)