隐藏后如何在JavaScript中显示父按钮

时间:2011-10-26 19:12:32

标签: c# javascript .net

这可能是我的一个明显错误。我有一个C#页面,其中有一个按钮,单击该按钮可在iFrame中打开日历(ASP经典)。该日历以 AddToCartButton 的形式传递给按钮的ClientID并使用此行:

lo("parent.document.getElementById('" & AddToCartButton & "').style.display = 'none';")

lo 是一个 Response.Write 类型的函数,只是将文本输出到页面。)

在日历出现时隐藏按钮。在用户选择日期后,日历使用类似的行将日期放入我的C#文本框中:

lo("parent.document.getElementById('" & PostBackField & "').value = '" & Replace(CurrentDate,":00 "," ") & "';")

这一切都很好但是当我尝试重新打开按钮时:

lo("parent.document.getElementById('" & AddToCartButton & "').style.display = '';")
没有任何反应。我也尝试了'内联'类似的非结果。有没有人对我在这里所写的内容有所了解?

2 个答案:

答案 0 :(得分:1)

您熟悉firebug吗?尝试使用它,看看它是否有助于您调试问题。您可以在iframe窗口的代码中设置断点,该代码执行相关行并查看发生的情况。在那里,我会尝试将parent.document.getElementById('" & AddToCartButton & "')设置为变量,看看你得到了什么。

答案 1 :(得分:0)

你应该使用Visibility而不是display,但我看不出为什么你的代码不能用于显示。

lo("parent.document.getElementById('" & AddToCartButton & "').style.visibility = 'hidden';")

然后

lo("parent.document.getElementById('" & AddToCartButton & "').style.visibility ='visible'

将显示设置为隐藏会从流中移除项目,其中可见性使项目保持原位,并隐藏它,我认为这就是您想要的。

这是一个很好的article解释差异。

以下是我拼凑的快速示例。

    <html>
    <head>
    <script type="text/javascript">
    function show_button()
    {
       document.getElementById("targetBtn").style.visibility = 'visible';
    }
    function hide_button()
    {
       document.getElementById("targetBtn").style.visibility = 'hidden';
    }
    function remove_button()
    {
       document.getElementById("targetBtn").style.display = 'none';
    }
    </script>
    </head>
    <body>
    <input id="targetBtn" type="button" value="Button to Hide/Show" />
    <input type="button" onclick="show_button()" value="Show Button" />
    <input type="button" onclick="hide_button()" value="Hide Button" />
    <input type="button" onclick="remove_button()" value="Remove Button" />

    </body>
    </html>

如果您运行此示例,请单击显示和隐藏按钮。您会注意到他们如何在页面上保留它们。单击“删除”按钮,它们将全部移至左侧。