【问题标题】:HTML Form will not submit in IE9HTML 表单不会在 IE9 中提交
【发布时间】:2013-10-29 00:27:58
【问题描述】:

我有一个不会在 IE9 中提交的简单 HTML 表单。它适用于 Chrome、FF 和 IE10。

我尝试在 Windows 7 上的 IE9 和 Windows 8 上的 IE10 中提交。

IE10 可以正常工作,除非我将浏览器模式更改为 IE9;那么它不会提交。

Demo。如果您在任何可用的浏览器上单击“保存”,它会将您带到假的 demo_form.asp。

这是表格:

<!DOCTYPE html> 
<html> 
    <head> 
        <title>Title</title> 
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1"> 

        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
        <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
    </head>
    <body>
        <div data-role="page">
            <div data-role="header">
                <h1>Title</h1>
            </div>
            <div data-role="fieldcontain">
                <div class="error-messsage">
                    <p/>
                </div>
                <p>
                    <form action="demo_form.asp" data-ajax="false" method="get">
                        <input type="hidden" name="scoreType" id="_scoreType" value="T"/>
                        <div data-role="fieldcontain">
                            <fieldset class="ui-grid-a">
                                <div class="ui-block-a">Minutes:</div>
                                <div class="ui-block-b">Seconds:</div>
                                <div class="ui-block-a">
                                    <input type="number" name="score_minutes" value="1" id="_scoreMinutes" maxlength="20" autocomplete="off" data-inline="true"/>
                                </div>
                                <div class="ui-block-b">
                                    <input type="number" name="score_seconds" value="2" id="_scoreSeconds" maxlength="20" autocomplete="off" data-inline="true"/>
                                </div>
                            </fieldset>
                            <input type="hidden" name="score" id="_score" value="62"/>
                        </div>
                        <div data-role="fieldcontain">
                            <label for="_note">Note:</label>
                            <textarea name="note" cols="40" rows="10" id="_note" autocomplete="off"/>
                        </div>
                        <div data-role="fieldcontain">
                            <label for="_classAttended" class="select">Class Time:</label>
                            <select name="class_attended" id="_classAttended" data-native-menu="false">
                                <option value="-1"/>
                                <option value="6">06:00 am</option>>
</select>
                        </div>
                        <div data-role="fieldcontain">
                            <label for="_memberRating" class="select">Member Rating:</label>
                            <select name="member_rating" id="_memberRating" data-native-menu="false">
                                <option value="-1"/>
                                <option value="5">5 </option>
                            </select>
                        </div>
                        <div data-role="fieldcontain">
                            <label for="_rx">RX</label>
                            <input type="checkbox" name="rx" value="1" id="_rx" data-mini="true"/>
                        </div>
                        <div data-role="fieldcontain">
                            <a href="http://mysite.com/index.php/welcome/index/TRUE" data-ajax="false" data-role="button" data-inline="true">Cancel</a>
                            <button name="" type="Submit" id="_submit" class="ui-btn-hidden" value="Save" aria-disabled="false" data-inline="true" data-theme="b"/>
                        </div>
                    </form>
                </p>
            </div>
        </div>
    </body>
</html>

【问题讨论】:

  • 什么是“兼容模式”设置?
  • 如果将&lt;button 替换为&lt;input 会发生什么?

标签: html jquery-mobile internet-explorer-9


【解决方案1】:

您有一个 &lt;div&gt;,它试图在 &lt;form&gt; 中,而 &lt;form&gt;&lt;p&gt; 中。但是&lt;div&gt;s 不能在&lt;p&gt; 中,所以HTML 解析器关闭&lt;p&gt; 元素,这样做也关闭了&lt;form&gt;。所以保存按钮不在表单内,因此 IE9 不知道单击按钮时要提交什么。删除 &lt;form&gt; 周围的 &lt;p&gt; 标签。

FF、Chrome 和 IE10 中使用的 HTML5 解析器有一些巧妙的技巧来处理您的无效标记,但旧的 IE9 解析器无法处理。

此外,您还有&lt;p/&gt;&lt;textarea/&gt;。不要那样做。任何一个元素都不支持自闭合语法。

【讨论】:

  • 它没有检查他的 HTML 的有效性,但是恕我直言,人们在提出问题之前应该始终确保他们的代码经过验证。如果它没有验证,他们应该先解决这个问题......
猜你喜欢
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
  • 1970-01-01
  • 2012-09-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多