脚本在重新加载时停止

Script stops on reload

我有三个单选按钮和三个下拉菜单,所有三个单选按钮始终可见,我有一个隐藏下拉菜单的脚本,如果单选按钮 1 被选中,它会显示一个下拉菜单,另一个单选按钮2被勾选等等。

$(function() {
        $('input[type=radio]').each(function() {
            var state = JSON.parse( localStorage.getItem('radio_'  + this.id) );

            if (state) this.checked = state.checked;
        });
    });
    $(window).bind('unload', function()
    {
        $('input[type=radio]').each(function()
        {
            localStorage.setItem(
                'radio_' + this.id, JSON.stringify({checked: this.checked})
            );
        });
    });

此脚本会记住上次检查的是哪个无线电,因此即使我刷新页面,也会检查同一个无线电。这也意味着,总是有一个收音机被选中!

我还有以下脚本:

$( function () {
        $("input[type='radio']").change(function() {
            if ($(this).val() == 1) {
                $("#exerVariNameS").show();
                $("#exerVariNameB").hide();
                $("#exerVariNameD").hide();
            } else if ($(this).val() == 2){
                $("#exerVariNameS").hide();
                $("#exerVariNameB").show();
                $("#exerVariNameD").hide();
            } else {
                $("#exerVariNameS").hide();
                $("#exerVariNameB").hide();
                $("#exerVariNameD").show();
            }
        });
    });

这是一个隐藏下拉菜单并只显示一个与选中的无线电相连的下拉菜单的菜单,但是,当页面重新加载时(或在表单-post 上),所有下拉菜单都变得可见,即使收音机确实还在检查,我不知道为什么?页面刷新时脚本运行又出现了吗?

通过 javascript 代码更改字段时不会触发更改事件。 作为一种解决方法,您可以通过调用

在每个函数中手动触发它
 $(this).trigger('change');