即使刷新页面,jquery也会保持div visible-select选项

时间:2014-02-24 16:25:25

标签: jquery html show-hide radio page-refresh

我搜索了这个网站和网络,但我没有发现任何可以解决我问题的内容。

我有4个电台,如果你选择显示/隐藏包含4个注册表格的div。这非常有效。

我有2个选择由包含和国家/地区填充。这非常有效。

我有两个问题:

1)我的问题是,如果您更新页面或用户单击提交按钮,div将消失,即页面返回其初始状态。

我希望显示的div保持可见,即使刷新页面或模块验证有错误。

2)第二个问题总是当你重新加载页面2选择包含“大陆”和国家,它们返回到初始状态时,我不会留在用户做出的选择上。

我希望即使刷新页面,用户选择的大陆和国家仍然会被选中

我最近在学习jquery。

我希望有人帮我一把。

我希望尽可能清楚。

抱歉英语不好。

这是html代码:

<select id="continent" onchange="countryChange(this);" class="elementiForm">
      <option value="empty">Seleziona un Continente</option>
      <option value="Europa">Europa</option>    
      <option value="Nord America">Nord America</option>
      <option value="Sud America">South America</option>
      <option value="Asia">Asia</option>
      <option value="Oceania">Oceania</option>
      <option value="Africa">Africa</option>        
</select>

<label for="country" class="labelForm">Seleziona uno Stato</label>
      <select id="country" class="elementiForm">
      <option value="0" >Seleziona uno Stato</option>
</select>

<!-- below the div that contain the headlights form -->
<div id="contatti_RS" class="red box">
    societa form here ...
</div>

<div id="privato" class="green box">
    privato form here ...
</div>

<div id="ditta_professionista" class="blue box">
    ditta_professionista form here ...
</div>

<div id="associazione" class="black box">
    associazione form here ...
</div>

这是我显示/隐藏div的jquery

$(document).ready(function () {

      $('input[type="radio"]').click(function(){
            if($(this).attr("value")=="societa"){
                $(".box").hide();
                $(".red").show();
            }
            if($(this).attr("value")=="privato"){
                $(".box").hide();
                $(".green").show();
            }
             if($(this).attr("value")=="ditta_professionista"){
                $(".box").hide();
                $(".blue").show();
            }
            if($(this).attr("value")=="associazione"){
                $(".box").hide();
                $(".black").show();
            }



        });

这是我的jquery控制是否在页面刷新时选择广播

$(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})
        );
    });
});  

1 个答案:

答案 0 :(得分:0)

如果可能,请使用AJAX(jQuery get或post)

如果无法使用AJAX,您可以记住cookie中的设置。例如。你可以设置

exp = Date.now();
exp += 84600000; //validity one day
document.cookie = "mycookie=" + some_value + "expires=" +
    (new Date(d)).toGMTString();

重新加载后,然后解析cookie(Read a javascript cookie by name)并相应地设置页面状态。