脚本在重新加载时停止

时间:2016-11-29 08:39:59

标签: javascript jquery refresh hide show

我有三个radiobuttons和三个下拉菜单,所有三个无线电始终可见,我有一个隐藏下拉菜单的脚本,如果选中无线电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();
            }
        });
    });

这是一个隐藏下拉菜单并且只显示连接到任何一个收音机的人,但是,当页面重新加载(或在表格上)时,即使收音机确实仍然被检查,所有下拉都会变得可见,而且我不知道为什么?脚本刷新后脚本是否再次运行?

1 个答案:

答案 0 :(得分:0)

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

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