单击javascript隐藏并显示输入
我试图从隐藏p标记开始,然后单击在屏幕上显示输入字段。我现在有这个:单击javascript隐藏并显示输入,javascript,html,ejs,Javascript,Html,Ejs,我试图从隐藏p标记开始,然后单击在屏幕上显示输入字段。我现在有这个: <label for="check-1">Small</label> <input type="checkbox" name="size[]" id="small" value="small" onclick="sFunction()"> <scri
<label for="check-1">Small</label>
<input type="checkbox" name="size[]" id="small" value="small" onclick="sFunction()">
<script>
function sFunction() {
document.getElementById("s").innerHTML = '<label for="check-1">SMALL Price ($). </label><input type="text" name="s" id="small">';
}
</script>
<p id="s"></p>
小
函数sFunction(){
document.getElementById(“s”).innerHTML='SMALL Price($)';
}
然而,我显然无法关闭它,我真的不知道如何隐藏它再次点击复选框。所以现在它开始隐藏,然后点击,显示,然后我需要它隐藏,如果我再次点击它。谢谢我想你可以这样做:
- 您将
可见性样式设置为
p标记
- 在onclick函数中,检查
p标记上的可见性样式是否隐藏,如果是,则检查
使其可见,如果否,则检查
使其隐藏
<label for="check-1">Small</label> <input type="checkbox" name="size[]" id="small" value="small" onclick="sFunction()"> <script> function sFunction() { if ("hidden" == document.getElementById("s").style.visibility) { document.getElementById("s").style.visibility = "visible"; } else { document.getElementById("s").style.visibility = "hidden"; } } </script> <p id="s" style="visibility:hidden"> <label for="check-1">SMALL Price ($).</label><input type="text" name="s" id="small"> </p>
小 函数sFunction(){ if(“hidden”==document.getElementById(“s”).style.visibility){ document.getElementById(“s”).style.visibility=“可见”; } 否则{ document.getElementById(“s”).style.visibility=“隐藏”; } }
小价格($)。
<!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0, user-scalable=yes"/>
<title> Test Page </title>
<style>
.hide { display: none; }
</style>
</head><body>
<label for="check-1">Small</label>
<input type="checkbox" id="check-1" onclick="sFunction()">
<span id="smallPrice" class="hide" >Price $ <input type="text" id="small"></span>
<script>
function sFunction() {
document.getElementById("smallPrice").classList.toggle('hide');
}
</script>
</body></html>
测试页
.hide{display:none;}
小的
价格美元
函数sFunction(){
document.getElementById(“smallPrice”).classList.toggle('hide');
}
您甚至可以重新排列显示以删除复选框:
<label for="check-1">Small</label>
<span id="smallPrice" class="hide" >
<input type="checkbox" id="check-1" onclick="sFunction()">
Price $ <input type="text" id="small"></span>
小
价格美元
还有一个选项根本不使用JS——只使用CSS
<!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0, user-scalable=yes"/>
<title> Toggle input element </title>
<style>
label { font-size: 1.5em; color: red; }
label:hover { cursor: pointer; }
.toggle + label + span{ display:none; }
.toggle:checked + label + span{ display:inline-block; }
</style>
</head>
<body>
<input type="checkbox" id="toggle1" class="toggle" hidden="">
<label for="toggle1">Small</label>
<span> Price $ <input type="text" id="small"></span>
</body></html>
切换输入元素
标签{字体大小:1.5em;颜色:红色;}
标签:悬停{光标:指针;}
.toggle+label+span{display:none;}
.toggle:checked+label+span{display:inline block;}
小的
价格美元
我建议您使用对象的classlist.toggle方法,这样您就可以实现示例中的实用css类,并根据自己的需要对其进行调整,同时使其可重用
let toggler=document.getElementById('toggler');
控制台日志(切换器);
toggler.onclick=function(){
让段落=document.getElementById('theParagraph');
段落.classList.toggle(“隐藏”);
};代码>
。隐藏{
显示:无;
}
切换它