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

标签 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,则仅显示从艺术到体育的选项。有人告诉我这可以用 javascript 或 jquery 完成,但 jquery 会更快。如果可能的话,请您为我提供一个可以做到这一点的解决方案。

最佳答案

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

$("#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 运行在服务器端。

关于javascript - 使用其他下拉选项动态更改下拉选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22795952/

相关文章:

javascript - CSS中的响应式缩放图像

php - 单击“保存”按钮时应用程序崩溃

Javascript、Jquery - 中断 if 语句

asp.net-mvc-3 - SignalR 在启动时不发送网络请求

jquery - 光滑的旋转木马破坏了我的网站响应能力

javascript - 添加react到静态html

javascript - 如何在 NVD3.js 饼图中显示当前选定系列的总和?

javascript - 检查函数参数是否为 JavaScript 中的默认参数

php - 如何从另一个 Controller 操作中访问 Controller 操作?

php - 这两行PHP代码是什么意思?