Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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 在cookie中保存下拉菜单选择_Javascript_Html_Asp.net Mvc_Cookies_Drop Down Menu - Fatal编程技术网

Javascript 在cookie中保存下拉菜单选择

Javascript 在cookie中保存下拉菜单选择,javascript,html,asp.net-mvc,cookies,drop-down-menu,Javascript,Html,Asp.net Mvc,Cookies,Drop Down Menu,我看了这篇文章-。我有一个下拉菜单,其中有两种语言,当我按下其中一种语言时,它会改变语言,但问题是,刷新页面后,它总是选择顶部的条目。 使用链接中的代码,所选值在页面刷新后仍保持选中状态,但现在当我按所需语言时,它不会执行任何操作。这个链接不起作用了 这是: <select name="change" id="change"> <option value="en" href="@Url.Action("ChangeCulture", "Home", new { lang = "

我看了这篇文章-。我有一个下拉菜单,其中有两种语言,当我按下其中一种语言时,它会改变语言,但问题是,刷新页面后,它总是选择顶部的条目。 使用链接中的代码,所选值在页面刷新后仍保持选中状态,但现在当我按所需语言时,它不会执行任何操作。这个链接不起作用了

这是:

<select name="change" id="change">
<option value="en" href="@Url.Action("ChangeCulture", "Home", new { lang = "en" })">English</option>
<option value="de" href="@Url.Action("ChangeCulture", "Home", new { lang = "de" })">Deutsch</option>
</select>

本地化不是个性化,而是内容。如果使用路由将语言放入URL,用户可以通过切换URL来选择语言,因此没有理由使用cookie。看见然后你可以使用下拉菜单来切换URL,但我建议在页脚中也使用链接,这样搜索引擎就会为每种语言编制索引。Hello@NightOwl888。我按照您在链接中提供的说明进行了更改。我的项目是一个内部网web应用程序,所以我不关心搜索引擎的索引。所以,问题是,我想用一个下拉列表来改变语言。ATM我可以更改它,但在页面刷新后,所选语言不会在下拉列表中保持选中状态,并再次转到列表中列出的第一种语言,这是一个问题,因为您无法切换回该语言,因为与该语言的链接不再可点击。本地化不是个性化,而是内容。如果使用路由将语言放入URL,用户可以通过切换URL来选择语言,因此没有理由使用cookie。看见然后你可以使用下拉菜单来切换URL,但我建议在页脚中也使用链接,这样搜索引擎就会为每种语言编制索引。Hello@NightOwl888。我按照您在链接中提供的说明进行了更改。我的项目是一个内部网web应用程序,所以我不关心搜索引擎的索引。所以,问题是,我想用一个下拉列表来改变语言。ATM我可以更改它,但在页面刷新后,所选语言不会在下拉列表中保持选中状态,并再次转到列表中列出的第一种语言,这是一个问题,因为您无法切换回该语言,因为与该语言的链接不再可点击。
<script>
    function saveTheme(cookieValue) {
        var sel = document.getElementById('ThemeSelect');

        saveclass = saveclass ? saveclass : document.body.className;
        document.body.className = saveclass + ' ' + sel.value;

        setCookie('theme', cookieValue, 365);
    }

    function setCookie(cookieName, cookieValue, nDays) {
        var today = new Date();
        var expire = new Date();

        if (nDays == null || nDays == 0)
        nDays = 1;

        expire.setTime(today.getTime() + 3600000 * 24 * nDays);
        document.cookie = cookieName + "=" + escape(cookieValue) + ";expires=" + expire.toGMTString();
    }

    function readCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for (var i = 0; i < ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') c = c.substring(1, c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
        }
        return null;
    }

    document.addEventListener('DOMContentLoaded', function () {
        var themeSelect = document.getElementById('ThemeSelect');
        var selectedTheme = readCookie('theme');

        themeSelect.value = selectedTheme;
        saveclass = saveclass ? saveclass : document.body.className;
        document.body.className = saveclass + ' ' + selectedTheme;
    });
</script>
document.getElementById('ThemeSelect').onchange = function () {
window.location.href = this.children[this.selectedIndex].getAttribute('href');
}