javascript - 在选中复选框时显示/隐藏复选框

标签 javascript jquery html

我有一个 Rails 表单。我有 4 个复选框。我想做的是,在页面加载时隐藏 3 个复选框。当选中第四个复选框时,将显示隐藏的复选框。当取消选中该复选框时,再次隐藏 3 个复选框。

这是我到目前为止所拥有的;

从rails表单生成的HTML代码:

<table>
<tr>
   <td><label for="Question 1">Question 1?</label></td>
    <td><input default="false" id="question1" name="question1" onclick="showOptions()" type="checkbox" value="1"/></td>
</tr>
<tr>
   <td></td>
   <td>
      <input id="option1" name="option1" type="checkbox" value="idoption1"/>
      <label for="Option 1">Option 1</label>
   </td>
</tr>
<tr>
   <td></td>
   <td>
      <input id="option2" name="option2" type="checkbox" value="idoption2"/>
      <label for="Option 2">Option 2</label>
   </td>
</tr>
<tr>
   <td></td>
   <td>
      <input id="option3" name="option3" type="checkbox" value="idoption3"/>
      <label for="Option 3">Option 3</label>
   </td>
</tr>
</table>

还有 JavaScript

<script type = "text/javascript" >

$(document).load(function() {
    $('#option1').hide()
    $('#option2').hide()
    $('#option3').hide()
});

function showOptions() {
    if $('#question1').checked() {
        $('#option1').show()
        $('#option2').show()
        $('#option3').show()
    }
}

< /script>

这行不通。怎么了?谢谢

最佳答案

尝试将 if 条件更改为 if ($('#question1').is(':checked') ){

DEMO

更好的方法是使用 css 隐藏所有 checkbox 及其内容,然后根据问题 checkbox 选择添加/删除类。请参阅下面的代码,

DEMO

CSS:

.hideContents input, .hideContents label { display: none; }

HTML: 向所有具有需要隐藏的 checkboxtd 添加类。

<td class="hideContents">

JS:

$('#question1').on ('change', showOptions);

function showOptions() {
    if ($('#question1').is(':checked') ){
        $('.hideContents')
            .removeClass('hideContents')
            .addClass('showContents');
    } else {
        $('.showContents')
            .removeClass('showContents')
            .addClass('hideContents');
    }
}

关于javascript - 在选中复选框时显示/隐藏复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9813160/

相关文章:

javascript - 在页面上显示某项的一个值,但发布不同的值

javascript - Vue.js/vuex ajax 更新具有 ajax 状态的组件

javascript - 动态表单不提交(jQuery)

html - css metro 瓷砖选择的风格

python - 如何定义 scrapy LinkExtractor 规则以跟踪所有以 .css 结尾的链接?

javascript - 在线阅读服务?

javascript - HTTPS 站点 : Load an external CSS over HTTP

javascript - 通过 render_javascript 将 javascript 变量传递给 partial

javascript - 使带有图像的 anchor 标记可点击

javascript - 拖放文本练习