首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在IE8下隐藏来自jQuery的嵌套表单

如何在IE8下隐藏来自jQuery的嵌套表单
EN

Stack Overflow用户
提问于 2010-04-29 12:30:47
回答 3查看 964关注 0票数 6

一个包含div的html片段,其中包含一个包含表的表单:

代码语言:javascript
复制
<!DOCTYPE html>
<html> <!-- xmlns="http://www.w3.org/1999/xhtml" lang="en" -->
<head>
    <style type="text/css">
    #content{position:relative}
    table {border-color:#999;border-style:solid}
    </style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>

<body>
    <button onclick="javascript:$('.content-panel').toggle();">Toggle</button>
    <div id="content">
        <div class="content-panel">
            <form action='' method='post'>
                <select> 
                    <option>a </option>
                </select>

                <table>
                    <tr><td>ABCDEF</td></tr>
                </table>
            </form>
        </div>
    </div>
</body>
</html>

切换按钮应该隐藏窗体及其嵌套表,但在IE8下不会这样做。(版本8.0.60001)表单内容被隐藏,但表格边框继续显示,并保持其大小不变。它与标准模式相关;它在quirks-mode中消失。

有谁有解决这个问题的办法吗?

这个示例页面在我所能减少的范围内被减少了。如果我删除select或其中任何一个div,问题就会消失。select必须存在,并且表需要嵌套在表单中,因为它将包含表单元素。

该页面本身位于:http://dev.rdbhost.com/rdbadmin/mainProbDemo.html

我之前用一个过于简单的例子发布了这个问题,这个例子是不可重现的。如果你当时看过了,谢谢。

EN

回答 3

Stack Overflow用户

发布于 2010-06-12 19:03:41

如果仅仅隐藏不起作用,http://api.jquery.com/detach/可能会对你起作用-它会从dom中删除元素,但保存它,以便您可以在需要时重新插入它(使用http://api.jquery.com/append/http://api.jquery.com/appendTo/)。您还可以尝试将可见性css属性$(".content-panel").css("visibility","hidden");设置为附加度量(请注意,这将意味着元素仍然占用空间,另请参阅http://www.w3schools.com/css/pr_class_visibility.asp) (编辑:使用$(".content-panel").css("visibility","visible");还原)。最后但并非最不重要的一点是,你永远不会知道--也许只是使用show(0);hide(0);就行了,而toggle在某种程度上是借来的--不太可能,然后我猜墨菲也适用于这种情况。

票数 2
EN

Stack Overflow用户

发布于 2010-06-11 03:46:45

为什么onclick处理程序中有javascript: schema声明?

代码语言:javascript
复制
<button onclick="$('.content-panel').toggle();">Toggle</button>
票数 1
EN

Stack Overflow用户

发布于 2010-06-17 22:58:38

用额外的表包装整个表单元素可以吗?如下所示:

代码语言:javascript
复制
<!DOCTYPE html>
<html> <!-- xmlns="http://www.w3.org/1999/xhtml" lang="en" -->
<head>
    <style type="text/css">
    #content{position:relative}
    .inner {border-color:#999;border-style:solid}
    </style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>

<body>
    <button type="button" onclick="javascript:$('.content-panel').toggle();">Toggle</button>
    <div id="content">
        <div class="content-panel">
            <form action='' method='post'>
                <table>
                    <tr>
                        <td>
                            <select> 
                                <option>a </option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <table class="inner">
                                <tr><td>ABCDEF</td></tr>
                            </table>
                        </td>
                    </tr>
                </table>
            </form>
        </div>
    </div>
</body>
</html>

或者只是将表单下的所有元素添加到您拥有的表中:

代码语言:javascript
复制
    <form action='' method='post'>
            <table>
                <tr>
                    <td>
                        <select> 
                            <option>a </option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td>
                        ABCDEF
                    </td>
                </tr>
            </table>
    </form>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2734780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档