使用其他下拉选项动态更改下拉选项

时间:2014-04-01 20:12:58

标签: javascript php jquery forms

我对php相对较新,特别是它的jquery方面。我想要做的是让用户在一个下拉框中选择影响另一个框的选项。

第一次下拉(第二次更改的输入)

<select class="form-control" id="form" name="form" required>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select>

第二次下拉(选项根据第一个下拉列表中的输入而变化)

<select class="form-control" id="subject" name="subject" required>
<option value="English">English</option>
<option value="Maths">Maths</option>
<option value="Science">Science</option>
<option value="Geography">Geography</option>
<option value="History">History</option>
<option value="RS">RS</option>
<option value="BSEC">BSEC</option>
<option value="French">French</option>
<option value="German">German</option>
<option value="Spanish">Spanish</option>
<option value="Italian">Italian</option>
<option value="Latin">Latin</option>
<option value="Greek">Greek</option>
<option value="Art">Art</option>
<option value="3D Design">3D Design</option>
<option value="Drama">Drama</option>
<option value="Music">Music</option>
<option value="PE">PE</option>
</select>

理想情况下,如果选择的数字从1到5显示,则仅显示从英语到希腊语的选项,但如果选择6或7,则只显示从艺术到PE的选项。我被告知这可以在javascript或jquery中完成,但jquery会更快。如果可能的话,请你能为我提供一个解决方案。

1 个答案:

答案 0 :(得分:1)

此代码将为您完成工作。这不是一个干净的代码,我相信有更好的方法可以做到这一点,但这是一个非常简单的方法:

$("#form").change( function() {
    if ( parseInt($(this).val()) < 6 ) {
        $("#subject").html('                               \
            <option value="English">English</option>       \
            <option value="Maths">Maths</option>           \
            <option value="Science">Science</option>       \
            <option value="Geography">Geography</option>   \
            <option value="History">History</option>       \
            <option value="RS">RS</option>                 \
            <option value="BSEC">BSEC</option>             \
            <option value="French">French</option>         \
            <option value="German">German</option>         \
            <option value="Spanish">Spanish</option>       \
            <option value="Italian">Italian</option>       \
            <option value="Latin">Latin</option>           \
            <option value="Greek">Greek</option>           \
            ');
    } else {
        $("#subject").html('                                 \
            <option value="Art">Art</option>                 \
            <option value="3D Design">3D Design</option>     \
            <option value="Drama">Drama</option>             \
            <option value="Music">Music</option>             \
            <option value="PE">PE</option>                   \
            ');
    }
});

顺便说一下Jquery与PHP无关。 Jquery是一个javascript库,它在客户端运行,而PHP在服务器端运行。