繁体   English   中英

如何检查页面加载时是否选中了复选框,如果选中,则显示表单?

[英]how to check if a checkbox is checked on page load, and if it does,then show a form?

我正在尝试show()表单,如果页面加载时该复选框已选中。 目前,我的复选框的确显示刷新页面时已选中。 但是,它只有在您单击两次后才会显示该form ,因此,如果在未选中它的情况下单击该复选框,则再单击一次就会选中该复选框并显示该表单。

另一个问题是我有5个复选框ID和5个表单类,因此我有5个函数做同样的事情。 我的问题是,如何使一个函数可以使用5个不同的ID?

因此,有两个问题合而为一:

1)如何显示表格被选中的复选框

2)如何将我的5个函数转换为一个函数,该函数根据传递的ID确实显示表格。

PS:我有

<script src="https://code.jquery.com/jquery-2.1.0.min.js"></script> 
<script type="text/javascript" src="js/setting.js"></script>

<head>

这是HTML(注意:我将只发布一个ID为1的div

//This is the checkbox
<div class="col-sm-6">
    <div class="form-group">
      <label class="switch">

          <input name="on_off" checked type="checkbox" id="bc1"  class="switch-input on-off">

        <span class="switch-label" data-on="On" data-off="Off"></span> <span class="switch-handle"></span> 
      </label>
    </div>
  </div>

 //this is the form
<form class="form-horizontal bc-details1" method="post" action="programs-controller.php" style="display:none" role="form">

  <div class="col-sm-6">
    <div class="form-group">
      <label class="control-label" >Start Date:</label>
      <div class="input-width input-group date col-sm-10 date-picker">
          <input placeholder="MM/DD/YYYY" type="text" style="height:30px; font-size:14px" class="form-control " name="start_date" />
          <span class="input-group-addon" ><i class="glyphicon glyphicon-calendar"></i></span>
      </div>    
    </div>
</form>

setting.js

$(document).ready(function(){



$('#bc1').change(function () {

    if (this.checked) {

    $('form.bc-details1').show();

}

else {

    $('form.bc-details1').hide();

}

});



$('#bc2').change(function () {

    if (this.checked) {

    $('form.bc-details2').show();

}

else {

    $('form.bc-details2').hide();

}

});


$('#bc3').change(function () {

    if (this.checked) {

    $('form.bc-details3').show();

}

else {

    $('form.bc-details3').hide();

}

});

$('form.bc4').change(function () {


    if (this.checked) {

    $('form.bc-details4').show();

}

else {

    $('form.bc-details4').hide();

}

});

$('#bc5').change(function () {

    if (this.checked) {

    $('form.bc-details5').show();

}

else {

    $('form.bc-details5').hide();

}

});

});

编辑:我的表单使用的是类而不是ID ...但是,它们必须使用不同的ID或类,因为它们具有不同的输入和值

尝试在准备就绪的文档中调用is(':checked')

$(document).ready(function() {
    if ($('#bc').is(':checked')) {
        $('form.bc-details1').show();
    } else {
        $('form.bc-details1').hide();
    }
});

并具有一个用于不同id的函数,请使用以下命令:

$('input[type=checkbox]').change(function() {
    var num = $(this).attr('id').match(/bc([0-9]+)/)[1];
    if (this.checked) {
        $('form.bc-details' + num).show();
    } else {
        $('form.bc-details' + num).hide();
    }
});

并使用相同的技巧准备文档:

$(document).ready(function() {
    function check() {
        var $checkbox = $(this);
        var num = $checkbox.attr('id').match(/bc([0-9]+)/)[1];
        if ($checkbox.is(':checked')) {
            $('form.bc-details' + num).show();
        } else {
            $('form.bc-details' + num).hide();
        }
    }
    $('input[type=checkbox]').each(check).change(check);
});

暂无
暂无

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

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