Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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
Jquery 在值使用cookie更改后检查select控件的状态?_Jquery - Fatal编程技术网

Jquery 在值使用cookie更改后检查select控件的状态?

Jquery 在值使用cookie更改后检查select控件的状态?,jquery,Jquery,我实现了一些代码(如下)来检查ContentID的状态并隐藏或显示一个DIV: <select id="ContentID" name="ContentID"> <option selected="selected" value="00">Menu</option> <option value="01">Topic</option> </select>

我实现了一些代码(如下)来检查ContentID的状态并隐藏或显示一个DIV:

        <select id="ContentID" name="ContentID">
          <option selected="selected" value="00">Menu</option>
          <option value="01">Topic</option>
        </select>
        <input id="htmlEdit" type="checkbox" />

        $("#ContentID")
            .val($.cookie("ContentID_dropdown"))
            .change(function () {
                if ($(this).val() == "00")
                    $("#htmlSwitch").show();
                else
                    $("#htmlSwitch").hide();
                $.cookie("ContentID_dropdown", $(this).val(), { expires: 365, path: '/' });
                refreshGrid("Content");
            });

菜单
话题
$(“#ContentID”)
.val($.cookie(“ContentID_下拉列表”))
.改变(功能){
如果($(this.val()=“00”)
$(“#htmlSwitch”).show();
其他的
$(“#htmlSwitch”).hide();
$.cookie(“ContentID_下拉列表”,$(this.val(),{expires:365,path:'/'});
刷新网格(“内容”);
});
此代码有效,但仅当ContentID的值更改时有效。我需要的是在值被cookie更改后也会检查值的东西


change函数中检查.val()的代码不会检查任何内容,也不会在使用cookie设置初始值时运行。因此,如果我的cookie设置为Topic,那么它将被忽略,而htmlSwitch DIV将在不应该的时候出现。有没有办法让它检查初始值并隐藏或显示htmlSwitch id?

如果在绑定
更改后立即触发它会怎么样

$("#ContentID")
        .val($.cookie("ContentID_dropdown"))
        .change(function () {
            if ($(this).val() == "00")
                $("#htmlSwitch").show();
            else
                $("#htmlSwitch").hide();
            $.cookie("ContentID_dropdown", $(this).val(), { expires: 365, path: '/' });
            refreshGrid("Content");
        })
        .trigger('change');

如果在
更改绑定后立即触发它会怎么样

$("#ContentID")
        .val($.cookie("ContentID_dropdown"))
        .change(function () {
            if ($(this).val() == "00")
                $("#htmlSwitch").show();
            else
                $("#htmlSwitch").hide();
            $.cookie("ContentID_dropdown", $(this).val(), { expires: 365, path: '/' });
            refreshGrid("Content");
        })
        .trigger('change');

谢谢-这似乎很管用。我从来没有想过按照你的建议去做。你的路很干净。我注意到的一件事是DIV出现了一秒钟,然后被隐藏。有没有一种方法可以让我的代码在默认情况下不可见,然后让我的代码将不可见更改为show()或hide(),只需使用CSS显示:无
您的htmlSwitch元素。@Jessica确定,将
隐藏
属性添加到元素:
@Eli-确定吗?警告不要以这种方式使用该属性。我根据元素的名称猜测@Jessica没有隐藏包含内容的元素,但是如果我不正确,那么您就是正确的。您不想使用hidden或display:none隐藏元素,因为屏幕阅读器无法访问内容。其他技术会更好。谢谢-这似乎可以做到。我从来没有想过按照你的建议去做。你的路很干净。我注意到的一件事是DIV出现了一秒钟,然后被隐藏。有没有一种方法可以让我的代码在默认情况下不可见,然后让我的代码将不可见更改为show()或hide(),只需使用CSS显示:无
您的htmlSwitch元素。@Jessica确定,将
隐藏
属性添加到元素:
@Eli-确定吗?警告不要以这种方式使用该属性。我根据元素的名称猜测@Jessica没有隐藏包含内容的元素,但是如果我不正确,那么您就是正确的。您不想使用hidden或display:none隐藏元素,因为屏幕阅读器无法访问内容。最好采用其他技术。