.= 'tag.htm'; break; case 'flag': $pre .= $default_pre .= 'flag.htm'; break; case 'my': $pre .= $default_pre .= 'my.htm'; break; case 'my_password': $pre .= $default_pre .= 'my_password.htm'; break; case 'my_bind': $pre .= $default_pre .= 'my_bind.htm'; break; case 'my_avatar': $pre .= $default_pre .= 'my_avatar.htm'; break; case 'home_article': $pre .= $default_pre .= 'home_article.htm'; break; case 'home_comment': $pre .= $default_pre .= 'home_comment.htm'; break; case 'user': $pre .= $default_pre .= 'user.htm'; break; case 'user_login': $pre .= $default_pre .= 'user_login.htm'; break; case 'user_create': $pre .= $default_pre .= 'user_create.htm'; break; case 'user_resetpw': $pre .= $default_pre .= 'user_resetpw.htm'; break; case 'user_resetpw_complete': $pre .= $default_pre .= 'user_resetpw_complete.htm'; break; case 'user_comment': $pre .= $default_pre .= 'user_comment.htm'; break; case 'single_page': $pre .= $default_pre .= 'single_page.htm'; break; case 'search': $pre .= $default_pre .= 'search.htm'; break; case 'operate_sticky': $pre .= $default_pre .= 'operate_sticky.htm'; break; case 'operate_close': $pre .= $default_pre .= 'operate_close.htm'; break; case 'operate_delete': $pre .= $default_pre .= 'operate_delete.htm'; break; case 'operate_move': $pre .= $default_pre .= 'operate_move.htm'; break; case '404': $pre .= $default_pre .= '404.htm'; break; case 'read_404': $pre .= $default_pre .= 'read_404.htm'; break; case 'list_404': $pre .= $default_pre .= 'list_404.htm'; break; default: $pre .= $default_pre .= theme_mode_pre(); break; } if ($config['theme']) { $conffile = APP_PATH . 'view/template/' . $config['theme'] . '/conf.json'; $json = is_file($conffile) ? xn_json_decode(file_get_contents($conffile)) : array(); } !empty($json['installed']) and $path_file = APP_PATH . 'view/template/' . $config['theme'] . '/htm/' . ($id ? $id . '_' : '') . $pre; (empty($path_file) || !is_file($path_file)) and $path_file = APP_PATH . 'view/template/' . $config['theme'] . '/htm/' . $pre; if (!empty($config['theme_child']) && is_array($config['theme_child'])) { foreach ($config['theme_child'] as $theme) { if (empty($theme) || is_array($theme)) continue; $path_file = APP_PATH . 'view/template/' . $theme . '/htm/' . ($id ? $id . '_' : '') . $pre; !is_file($path_file) and $path_file = APP_PATH . 'view/template/' . $theme . '/htm/' . $pre; } } !is_file($path_file) and $path_file = APP_PATH . ($dir ? 'plugin/' . $dir . '/view/htm/' : 'view/htm/') . $default_pre; return $path_file; } function theme_mode_pre($type = 0) { global $config; $mode = $config['setting']['website_mode']; $pre = ''; if (1 == $mode) { $pre .= 2 == $type ? 'portal_category.htm' : 'portal.htm'; } elseif (2 == $mode) { $pre .= 2 == $type ? 'flat_category.htm' : 'flat.htm'; } else { $pre .= 2 == $type ? 'index_category.htm' : 'index.htm'; } return $pre; } ?>javascript - how to check if a checkbox is checked on page load, and if it does,then show a form? - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - how to check if a checkbox is checked on page load, and if it does,then show a form? - Stack Overflow

programmeradmin1浏览0评论

I am trying to show() a form if the checkbox is checked when the page load. Currently, my checkbox does show that is checked when I refresh the page. But, it doesn't show the form until you click twice, so if you click on the checkbox once it does uncheck it, then click one more time and the checkbox is checked and show the form.

Another issue is that I have 5 checkbox ID and 5 form classes and so I have 5 function doing the same thing. My question is, how can I make one function to work with 5 different ID?

So, there are two question in one:

1)How to display the form is the checkbox is checked

2)How to convert my 5 functions into one function that does show the form depending on the ID passed.

PS: I have

<script src=".1.0.min.js"></script> 
<script type="text/javascript" src="js/setting.js"></script>

inside <head>

Here is the HTML (NOTE: I will post only one div with one ID)

//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();

}

});

});

EDIT: my forms are using classes and not ID...However, they have to use different id or class because they have different input and values

I am trying to show() a form if the checkbox is checked when the page load. Currently, my checkbox does show that is checked when I refresh the page. But, it doesn't show the form until you click twice, so if you click on the checkbox once it does uncheck it, then click one more time and the checkbox is checked and show the form.

Another issue is that I have 5 checkbox ID and 5 form classes and so I have 5 function doing the same thing. My question is, how can I make one function to work with 5 different ID?

So, there are two question in one:

1)How to display the form is the checkbox is checked

2)How to convert my 5 functions into one function that does show the form depending on the ID passed.

PS: I have

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

inside <head>

Here is the HTML (NOTE: I will post only one div with one ID)

//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();

}

});

});

EDIT: my forms are using classes and not ID...However, they have to use different id or class because they have different input and values

Share Improve this question edited Mar 30, 2016 at 14:51 Maduro asked Mar 30, 2016 at 14:45 MaduroMaduro 7255 gold badges24 silver badges47 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 5

Try to call is(':checked') in document ready:

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

and to have one function for different id use this:

$('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();
    }
});

and use same trick for document ready:

$(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);
});

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论