首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于HTML和JQuery中的复选框显示/隐藏下拉菜单和按钮

基于HTML和JQuery中的复选框显示/隐藏下拉菜单和按钮
EN

Stack Overflow用户
提问于 2013-03-12 18:31:01
回答 3查看 4.3K关注 0票数 1

我正在尝试在HTML中显示/隐藏下拉列表和按钮,但在尝试使其工作时遇到问题。这就是HTML的设置:

代码语言:javascript
复制
<td valign="top">
    <INPUT TYPE="CHECKBOX" NAME="switchBox" onClick="showHideForm(this,'extra')"> 
</td>
<div id="extra">
   <td valign="top"><form:select path="uSelectedSystemId" id="uSelectedSystemId"></form:select> </td>
   <td valign="top"><button type="button" id="fUndelete">Undelete</button</td>
</div>

这是函数:

代码语言:javascript
复制
function showHideForm(box, id) {
    var elm = document.getElementById(id);
    elm.style.display = box.checked ? $('#uSelectedSystemId').hide() : $('#uSelectedSystemId').show();
    elm.style.display = box.checked ? $('#fUndelete').hide() : $('#fUndelete').show();
}

当我选中该框时,没有任何反应。你知道我做错了什么吗?此外,有任何建议如何隐藏下拉菜单和按钮时,页面第一次加载时,它是显示的时刻(我希望他们隐藏)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-12 18:36:53

这里有一点jQuery和javascript的随机混合。如果您为checkbox提供了ID,则可以简单地执行以下操作

代码语言:javascript
复制
$(function(){

    $('#uSelectedSystemId').hide();  //Hide the elements onload
    $('#fUndelete').hide();          //Hide the elements onload

    $('#checkboxID').click(function(){
          if($(this).is(':checked')){
              $('#uSelectedSystemId').show();
              $('#fUndelete').show();
          } else {
              $('#uSelectedSystemId').hide();
              $('#fUndelete').hide();
          }
    });
});

如果您出于某种原因不想为复选框指定ID,那么可以将$('#checkboxID')行更改为此$('input[name="switchBox"]')

下面是你的函数的修改,这将隐藏和显示id为extra的DIV。上面的代码不会隐藏div,但会隐藏其中的两个元素。不过,这一点很容易调整

代码语言:javascript
复制
//Pure javascript version
function showHideForm(box, id) {
    var elm = document.getElementById(id);
    if(box.checked){
        elm.style.display = "none";
    } else {
        elm.style.display = "";
    }
}
票数 7
EN

Stack Overflow用户

发布于 2013-03-12 18:37:23

在checkbox的onchange事件上调用函数

代码语言:javascript
复制
<INPUT TYPE="CHECKBOX" NAME="switchBox" onchange="showHideForm(this,'extra')"> 
票数 0
EN

Stack Overflow用户

发布于 2013-03-12 18:51:28

不要混合使用jQuery和纯JavaScript,

代码语言:javascript
复制
<INPUT TYPE="CHECKBOX" NAME="switchBox" style="display:none" onClick="showHideForm()">

事情应该是这样工作的jQuery:

代码语言:javascript
复制
function showHideForm() {
    if($('#checkboxID').is(':checked')){
        $('#uSelectedSystemId').hide();
        $('#fUndelete').hide();
    }else {
              $('#uSelectedSystemId').show();
              $('#fUndelete').show();
    }
}

纯js:

代码语言:javascript
复制
function showHideForm(){
    if(document.getElementById('checkboxID').checked){
        document.getElementById("uSelectedSystemId").style.display="none"
        document.getElementById("fUndelete").style.display="none"
    }else{
        document.getElementById("uSelectedSystemId").style.display="block"
        document.getElementById("fUndelete").style.display="block"
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15358772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档