如果选择了选项值,则显示div保持刷新页面?

时间:2013-11-26 09:19:43

标签: jquery html hide show

我试图根据是否选中了复选框值来隐藏/显示div。找到一些代码,做了一些自定义,但现在页面每次都保持刷新。有人可以帮助我吗?

<script>
$(document).ready(function(){
    $("select").change(function(){                  
       if($(this).val() == '0'){
            $("#cp_doel_lening").attr('checked', false); 
            $("#cp_doel_lening2").attr('checked', false); 
            $("#box").hide();
            $(".custom_doel").hide();
       }
       if($(this).val() == '7'){
            $("#box").hide();
            $(".custom_doel").show();
       }
       if($(this).val() == '8'){
            $("#box").hide();
            $(".custom_doel").show();
       }
       if($(this).val() == '9'){
            $("#cp_doel_lening").attr('checked', false); 
            $("#cp_doel_lening2").attr('checked', false);
            $("#box").hide();
            $(".custom_doel").hide();
       }
    }).change();
});
</script>

我的css代码:

div.custom_doel { 
    display: none;
}

然后是我的HTML代码:

<form><select name='scat' id='scat' class='postform' >
    <option value='0' selected='selected'>Alle rubrieken</option>
    <option class="level-0" value="9">Ervaringen</option>
    <option class="level-0" value="7">Man</option>
    <option class="level-0" value="8">Vrouw</option>
</select><input type="submit" ></form>

<div class="custom_doel" id="box">
            <strong>Doel lening</strong>
    <li><label><input type="checkbox" name="cp_doel_lening[]" value="Particulier" id="cp_doel_lening" <?php 
    if (in_array('Particulier', $_GET['cp_doel_lening']) ) {
        echo 'checked';
    }
     ?> />Particulier</label></li>
    <li><label><input type="checkbox" name="cp_doel_lening[]" value="Zakelijk" id="cp_doel_lening2" <?php 
    if (in_array('Zakelijk', $_GET['cp_doel_lening']) ) {
        echo 'checked';
    }
     ?> />Zakelijk</label></li>
</div>

为什么让我的页面不断刷新?我注意到,如果我从我的javascript代码中删除了.change(),那么它就不会再发生了,但是div也将隐藏在表格搜索上(在搜索结果页面上),这是合乎逻辑的(我猜)因为css代码有display:none;)。 任何帮助将不胜感激。 谢谢!

1 个答案:

答案 0 :(得分:0)

我做了一个修复程序,如下所示;我很容易检查表单是否已提交,如果是,则显示设置为“阻止”。 在<div class="custom_doel" id="box">的地方,我将其更改为:

<?php
            if (in_array('Zakelijk', $_GET['cp_doel_lening']) || in_array('Particulier', $_GET['cp_doel_lening']) ) { ?>
            <div class="custom_doel" id="box" style="display:block;">
            <?php } else { ?>
            <div class="custom_doel" id="box">
            <?php } ?>

此外还有.change();从jquery中删除,导致此代码:

<script>
$(document).ready(function(){
    $("select").change(function(){                  
       if($(this).val() == '0'){
            $("#cp_doel_lening").attr('checked', false); 
            $("#cp_doel_lening2").attr('checked', false); 
            $("#box").hide();
            $(".custom_doel").hide();
       }
       if($(this).val() == '7'){
            $("#box").hide();
            $(".custom_doel").show();
       }
       if($(this).val() == '8'){
            $("#box").hide();
            $(".custom_doel").show();
       }
       if($(this).val() == '9'){
            $("#cp_doel_lening").attr('checked', false); 
            $("#cp_doel_lening2").attr('checked', false);
            $("#box").hide();
            $(".custom_doel").hide();
       }
    })
});
</script>