条件显示html元素表单

Alv*_*aro 9 javascript conditional visibility

好吧,经过一小时的javascript介绍,我提出了以下代码.它做了我想要的,但后来我想要别的东西,它不会工作.

我想要点击一个按钮,某个字段会隐藏,点击另一个是,另一个也会隐藏,但是,当然,它必须进行另一个节目,否则我们最终会没有任何东西和目的是根据用户点击的内容(在单选按钮上)显示不同的字段所以以幼稚的方式我制作了我的代码并且它有效.但后来我发现我首先要隐藏两个字段而不是显示两个字段,这就是问题所在.我在函数"告诉它"的参数中添加了一个0值,当x = 0时,则visibility = hidden.但是它不会听我的!所以,当代码x = 1和2时,代码的一部分工作,一个约为0,不会.

它是如此简单的代码,可以让某人微笑,但哎呀,它很干净,而且很有效.有没有人知道如何在点击按钮之前隐藏字段?

非常感谢我删除了一些HTML标签

<html>
    <head>
        <script language="javascript">
            var x = 0;

            function hola(x) {
                if(x == 0) {
                    document.getElementById("cont1").style.visibility="hidden";
                    document.getElementById("cont2").style.visibility="hidden";
                }

                if(x == 1) {
                    document.getElementById("cont1").style.visibility="visible";
                    document.getElementById("cont2").style.visibility="hidden"; 
                }

                if(x == 2)  {
                    document.getElementById("cont1").style.visibility="hidden";
                    document.getElementById("cont2").style.visibility="visible"; 
                }
            }
        </script>
    </head>

    <body>
        <input type="button" onclick="hola(1)" value="hidefield2" id="boton1">
        <div id="cont1">
            <input type="text">
        </div>

        <input type="button" onclick="hola(2)" value="hidefield1" id="boton2">

        <div id="cont2">
            <input type="text">
        </div>
    </body>
<html>
Run Code Online (Sandbox Code Playgroud)

Niv*_*vas 9

什么工作:
你有两个按钮,无论是在开始时可见.点击一个按钮,你隐藏了一个div,并使另一个可见.

现在你需要一种情况,当div应该隐藏在开头,然后当你点击一个按钮时显示.

默认情况下,对于visibility未给出显式属性的所有元素,将visibility被视为visible.

要使按钮不可见,您需要添加visibility:hidden到按钮.

你可以用两种方式做到:

  1. divs 的代码中,通过添加使"默认不可见" style='visibility:hidden'.

  2. 添加另一个在加载页面时调用的javascript函数,并使两个div都不可见:

    function hideBoth()  
    {  
       document.getElementById("cont1").style.visibility="hidden";  
       document.getElementById("cont2").style.visibility="hidden" ;   
    }
    
    Run Code Online (Sandbox Code Playgroud)

在加载页面时调用它: <body onload='hideBoth()'>

  • 感谢两位评论者:在处理了你们的提案后,我的结论是:1)我认为问题的原因是,尽管明确存在对此的调用,但 x = 0 的分配不起作用,因为 X 被放置在上面的外部在函数开始之前。2)如果我对隐藏在 html 标签中的可见性进行硬编码,尽管它确实隐藏了它,但单击按钮时它不会显示。3) 最后,从主体对函数的 onload 调用和添加 hideboth 函数就达到了目的。非常感谢。阿尔瓦罗 (2认同)

Gab*_*ams 6

这行:

document.getElementById("cont1").style.visibility="hidden";
Run Code Online (Sandbox Code Playgroud)

添加这个:

style="visibility: hidden;"
Run Code Online (Sandbox Code Playgroud)

对此:

<div id="cont1">
Run Code Online (Sandbox Code Playgroud)

使它看起来像这样:

<div id="cont1" style="visibility: hidden;">
Run Code Online (Sandbox Code Playgroud)

您可以自己执行此操作,只需将该属性添加到 html 标记中即可。


哦,是的,还有这个:

<div id="cont1">
Run Code Online (Sandbox Code Playgroud)

与此相同:

<div id="cont1" style="visibility: visible;">
Run Code Online (Sandbox Code Playgroud)