Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery从一个选择下拉列表中显示/隐藏选项,当选择其他选择下拉列表中的选项时,不更改当前选项_Javascript_Jquery - Fatal编程技术网

Javascript jQuery从一个选择下拉列表中显示/隐藏选项,当选择其他选择下拉列表中的选项时,不更改当前选项

Javascript jQuery从一个选择下拉列表中显示/隐藏选项,当选择其他选择下拉列表中的选项时,不更改当前选项,javascript,jquery,Javascript,Jquery,这里有点复杂,不确定是否可能 下面是一段jQuery,它显示/隐藏一个选择下拉菜单上的选项,取决于另一个选择下拉菜单选项。代码是由这里的一位成员针对前面的问题编写的 代码有效地隐藏了“布局选择”中的选项,具体取决于“列选择”中选择的选项。但是,如果我选择 3列+布局4 按下保存按钮后,页面重新加载,所选选项再次变为布局3。如果我选择 3列+布局5或2列+布局2 我需要jQuery在刷新时保持选择正确的选项 这就是我到目前为止所做的: <select name="column_select"

这里有点复杂,不确定是否可能

下面是一段jQuery,它显示/隐藏一个选择下拉菜单上的选项,取决于另一个选择下拉菜单选项。代码是由这里的一位成员针对前面的问题编写的

代码有效地隐藏了“布局选择”中的选项,具体取决于“列选择”中选择的选项。但是,如果我选择

3列+布局4

按下保存按钮后,页面重新加载,所选选项再次变为布局3。如果我选择

3列+布局5或2列+布局2

我需要jQuery在刷新时保持选择正确的选项

这就是我到目前为止所做的:

<select name="column_select" id="column_select">
    <option value="col1">1 column</option>
    <option value="col2">2 column</option>
    <option value="col3">3 column</option>
</select>

<select name="layout_select" id="layout_select">
    <!--Below shows when '1 column' is selected is hidden otherwise-->
    <option value="col1">none</option>

    <!--Below shows when '2 column' is selected is hidden otherwise-->
    <option value="col2_ms">layout 1</option> 
    <option value="col2_sm">layout 2</option>

    <!--Below shows when '3 column' is selected is hidden otherwise-->
    <option value="col3_mss">layout 3</option>
    <option value="col3_ssm">layout 4</option>
    <option value="col3_sms">layout 5</option>
</select>
jQuery:

$(document).ready(function() {
    var optarray = $("#layout_select").children('option').map(function() {
        return {
            "value": this.value,
            "option": "<option value='" + this.value + "'>" + this.text + "</option>"
        }
    })

    $("#column_select").change(function() {
        $("#layout_select").children('option').remove();
        var addoptarr = [];
        for (i = 0; i < optarray.length; i++) {
            if (optarray[i].value.indexOf($(this).val()) > -1) {
                addoptarr.push(optarray[i].option);
            }
        }
        $("#layout_select").html(addoptarr.join(''))
    }).change();
})
演示-


我对javascript感到困惑,因此非常感谢您的帮助。

我的建议是,在选择选项更改后,使用JQuery的cookie插件将所选值存储在cookie中

然后,在$document.ready中,可以从存储的值中设置每个选择选项