if check box is checked display div

后端 未结 3 2019
庸人自扰
庸人自扰 2021-02-10 14:57

I\'m trying to build something like wordpress options for toggling fields visibility when creating and article. What I\'ve build is relying on the $.click function

相关标签:
3条回答
  • 2021-02-10 15:15

    HTML

    <input type="checkbox" id="cbxShowHide"/><label for="cbxShowHide">Show/Hide</label>
    <div id="block">Some text here</div>
    

    css

    #block{display:none;background:#eef;padding:10px;text-align:center;}
    

    javascript / jquery

    $('#cbxShowHide').click(function(){
    this.checked?$('#block').show(1000):$('#block').hide(1000); //time for show
    });
    
    0 讨论(0)
  • 2021-02-10 15:31

    I think this, Jquery UI Save State Using Cookie, is the missing part you are after to control state between reloads?

    0 讨论(0)
  • 2021-02-10 15:40

    Assuming that you are externally controlling the checked state of your checkboxes...

    Demo: http://jsfiddle.net/zgrRd/5/

    In other words, whatever state the checkboxes are in will be evaluated when the page loads, so if a box is not checked, the corresponding element will start out hidden. So if you are setting a value server-side which checks the box, this client-side JavaScript should evaluate it properly.

    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>
    

    Note my use of data-* attributes. This avoids using the name attribute of one field to indicate a relationship to another field. You can legally name these attributes whatever you want, as long as they are prefixed with data-.

    0 讨论(0)
提交回复
热议问题