根据另一个选择禁用选择

时间:2014-07-17 07:15:05

标签: jquery select

我想根据另一个选择值禁用一些选择输入。

我在表单中有4个选择。第一个(#type_rapport)有3个选项,它的值使其他选择输入显示或隐藏。重要提示:由于PHP,这些选项已被填充。

例如,如果选择V,则会显示#select_v,而#select_f和#select_g将被隐藏。

这是我的表格:

<form>
<div>
    <select name="type_rapport" id="type_rapport">
        <option>-</option>
        <option value="v" <?php if (isset($_GET[ 'type_rapport']) AND $_GET[ 'type_rapport']=="v" ) echo "selected=\"Selected\ ""; ?>>V</option>
        <option value="f" <?php if (isset($_GET[ 'type_rapport']) AND $_GET[ 'type_rapport']=="f" ) echo "selected=\"Selected\ ""; ?>>F</option>
        <option value="g" <?php if (isset($_GET[ 'type_rapport']) AND $_GET[ 'type_rapport']=="g" ) echo "selected=\"Selected\ ""; ?>>G</option>
    </select>
</div>
<div>
    <select name="designation" id="select_v" <? if (isset($_GET[ 'type_rapport'])){ if ($_GET[ 'type_rapport']!="v" ) echo "disabled"; } else { echo "disabled"; } ?>>
        <?php $infos=$ bdd->query(...); while ($donnees = $infos->fetch()) { ?>
        <option value="<?php echo $donnees[0]; ?>" <?php if (isset($_GET[ 'designation']) AND $_GET[ 'designation']==$donnees[0]) echo "selected=\"Selected\ ""; ?>>
            <?php echo $donnees[1]; ?>
        </option>
        <?php } $infos->closeCursor(); ?></select>
</div>
<div>
    <select name="famille" id="select_f" <? if (isset($_GET[ 'type_rapport'])){ if ($_GET[ 'type_rapport']!="f" ) echo "disabled"; } else { echo "disabled"; } ?>>
        <?php $infos=$ bdd->query('...'); while ($donnees = $infos->fetch()) { ?>
        <option value="<?php echo $donnees[0]; ?>" <?php if(isset($_GET[ 'famille']) AND $_GET[ 'famille']==$donnees[7]) echo "selected=\"Selected\ ""; ?>>
            <?php echo $donnees[8]; ?>
        </option>
        <?php } $infos->closeCursor(); ?></select>
</div>
<div>
    <select name="groupe" id="select_g" <? if (isset($_GET[ 'type_rapport'])){ if ($_GET[ 'type_rapport']!="g" ) echo "disabled"; } else { echo "disabled"; } ?>>
        <?php $infos=$ bdd->query('...'); while ($donnees = $infos->fetch()) { ?>
        <option value="<?php echo $donnees[0]; ?>" <?php if(isset($_GET[ 'groupe']) AND $_GET[ 'groupe']==$donnees[10]) echo "selected=\"Selected\ ""; ?>>
            <?php echo $donnees[11]; ?>
        </option>
        <?php } $infos->closeCursor(); ?></select>
</div>

我的jQuery脚本:

$(document).ready(function () {
$('#select_v').closest('div').addClass('method_options').hide();
$('#select_f').closest('div').addClass('method_options').hide();
$('#select_g').closest('div').addClass('method_options').hide();
$('#type_rapport').change(function () {
    $('div.method_options').hide();
    $('#select_' + $(this).val()).closest('div').show();
    $('#select_' + $(this).val()).removeAttribute('disabled');
});
});

用户第一次查看表单时,应禁用#select_v,#select_f和#select_g,直到用户在#type_rapport选择输入中选择一个选项。我尝试添加removeAttribute行,但它没有工作。

当用户提交表单时,使用GET方法调用相同的页面,您可以在我的php代码中看到。选择了#type_rapport的选项,但根本没有显示相关的选择(尽管由于我的条件,它没有被禁用)。

这是一个jsFiddle链接:http://jsfiddle.net/wrnk/3Yy4H/

有人可以帮我解决这些问题吗?

提前致谢。

0 个答案:

没有答案