简体   繁体   English

Function 隐藏 label 取决于单选按钮

[英]Function that hides a label depending on radio button

I'm trying to get a function working that hides a label in the form depending on the radio button option selected.我正在尝试让 function 工作,它根据所选的单选按钮选项在表单中隐藏 label。 Here's my code so far.到目前为止,这是我的代码。

HTML HTML

<form action="">
<input type="radio" id="test" value="first"> first<br>
<input type="radio" id="test" value="second"> second<br>
<input type="radio" id="test"  value="third"> third
</form>

<label class="hidden">Hide this</label>

Javascript Javascript

var rbtn = document.getElementById("test");
var x = document.getElementsByClassName("hidden");

function hidelabel() {

  if (rbtn == 'third') {
    x.style.display='none';
}
}

You must fire your hide function after radio button clicked like this:在单击单选按钮后,您必须触发隐藏 function,如下所示:

document.mainForm.onclick = function(){
    var radVal = document.mainForm.rads.value;
    if (radVal == 'third') {
        document.getElementsByClassName("hidden")[0].style.display = 'none';
    }
}

ps: document.getElementsByClassName returns an array. ps: document.getElementsByClassName返回一个数组。 So you cannot use x.style.display='none';所以你不能使用x.style.display='none'; . .

Working example: https://jsfiddle.net/5ts0dak4/工作示例: https://jsfiddle.net/5ts0dak4/

First name the radio button ID's with something decent:首先用一些体面的东西命名单选按钮 ID:

<form action="">
<input type="radio" id="first" value="first"> first<br>
<input type="radio" id="second" value="second"> second<br>
<input type="radio" id="third" onclick="hide();" value="third"> third
</form>

<label class="hidden" id="hidden">Hide this</label>

Then try this:然后试试这个:

    function hide(){
    var x = document.getElementById('hidden');

    if(document.getElementById('third').checked) {
    x.style.display='none';
}
}

You can test it here https://jsfiddle.net/o54mzrk5/你可以在这里测试它https://jsfiddle.net/o54mzrk5/

Try this one.试试这个。

CSS: CSS:

<style type="text/css">
    .hidden{ display:none; }
</style>

HTML: HTML:

<form action="">
    <input type="radio" name="test" value="first" onclick="func(this, true);"> first<br>
    <input type="radio" name="test" value="second" onclick="func(this, true);"> second<br>
    <input type="radio" name="test"  value="third" onclick="func(this, false);"> third
</form>

<label class="hidden">Hide this</label>

Script:脚本:

<script type="text/javascript">

    func = function(ctrl, visible) {
        if(visible)
            document.getElementsByClassName("hidden")[0].style.display='block';
        else
            document.getElementsByClassName("hidden")[0].style.display='none';
    };

</script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM