jquery - 如果复选框被选中显示 div

标签 jquery html input checkbox toggle

我正在尝试构建类似 wordpress 选项的东西,用于在创建和文章时切换字段可见性。我构建的内容依赖于 $.click 函数,该函数使用相应的字段名称切换父级,我想知道如果选中复选框,最好的方法是什么因为如果您选中一个框并重新加载页面,我的代码会搞砸,因为它是一个点击,而不是如果该框被实际选中。提前致谢!

http://jsfiddle.net/zgrRd/1/

HTML

<input type="checkbox" name="title">
<span class="caption">Title</span>

<div class="hidden">
  <h2>Title</h2>
  <input type="text" name="title">
  <span class="caption">Lorem</span>
</div>

jQuery

$('input[type="checkbox"]').click(function(){
    var item = $(this).attr('name');
    $('input[name="'+item+'"][type="text"]').parent().toggle();
});

最佳答案

假设您在外部控制复选框的选中状态...

演示:http://jsfiddle.net/zgrRd/5/

换句话说,无论复选框处于什么状态,都会在页面加载时进行评估,因此如果未选中复选框,相应的元素将开始隐藏。因此,如果您在服务器端设置一个选中该框的值,则此客户端 JavaScript 应该正确评估它。

JavaScript

function evaluate(){
    var item = $(this);
    var relatedItem = $("#" + item.attr("data-related-item")).parent();

    if(item.is(":checked")){
        relatedItem.fadeIn();
    }else{
        relatedItem.fadeOut();   
    }
}

$('input[type="checkbox"]').click(evaluate).each(evaluate);

HTML

<input type="checkbox" data-related-item="title1">
<span class="caption">Title</span>

<div class="hidden">
  <h2>Title</h2>
  <input type="text" id="title1">
  <span class="caption">Lorem</span>
</div>
<hr>
<input type="checkbox" data-related-item="title2" checked>
<span class="caption">Title</span>

<div class="hidden">
  <h2>Title</h2>
  <input type="text" id="title2">
  <span class="caption">Lorem</span>
</div>

请注意我对 data-* 属性的使用。这避免了使用一个字段的 name 属性来指示与另一个字段的关系。您可以随意命名这些属性,只要它们以 data- 为前缀即可。

关于jquery - 如果复选框被选中显示 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15712251/

相关文章:

jquery - 如何在mvc中使用防伪 token 发出ajax请求

javascript - 在 Javascript(和 jQuery.extend)中限定 "this"

html - 格式未应用 CSS

javascript - 在 HTML 网页中,noscript 标签内的内容不会被具有脚本阻止扩展的浏览器呈现

javascript - HTML 中的正文和 Div 对齐

html - IOS 设备出现 HTML 表单输入问题(类型 = 文本)

javascript - radio 数组 - jquery

javascript - 组合两个新的 jQuery 函数

c++ - 如何检查多个输入中的非整数输入

file - Haskell:将文件中的每一行插入到列表中