Jquery 表单选择处理

Jquery 表单选择处理,jquery,forms,Jquery,Forms,我有一个产品选择页面,您可以在其中选择一个计划,一旦选择,它就会在一个div中显示选择信息。问题是,如果页面被刷新,summary div就会消失,但它会记住您的表单选择。我怎样才能得到它,使它还记得摘要呢 <html> <head> <script src="http://code.jquery.com/jquery-latest.min.js"></script> </head> <body> <script

我有一个产品选择页面,您可以在其中选择一个计划,一旦选择,它就会在一个div中显示选择信息。问题是,如果页面被刷新,summary div就会消失,但它会记住您的表单选择。我怎样才能得到它,使它还记得摘要呢

<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.min.js"></script>

</head>
<body>
<script>
$(document).ready(function(){
      $("div.plan").hide();

      $("input[type=radio]").click(function(){
          $("div.plan").hide();
          $("div[planid=" + $(this).val() +"]").show();
      });
});
</script>

<input type="radio" name="plan" value="1" /> Plan 1 <br />
<input type="radio" name="plan" value="2" /> Plan 2 <br />
<input type="radio" name="plan" value="3" /> Plan 3 <br />

<div class="plan" planid="1">Plan 1 details</div>
<div class="plan" planid="2">Plan 2 details</div>
<div class="plan" planid="3">Plan 3 details</div>

</body>
</html>

$(文档).ready(函数(){
$(“div.plan”).hide();
$(“输入[type=radio]”。单击(函数(){
$(“div.plan”).hide();
$(“div[planid=“+$(this.val()+”])).show();
});
});
计划1
计划2
计划3
计划1详情 计划2详情 计划3详情
在您的代码存储之后,您可以触发所选单选按钮上的
单击
处理程序,如下所示:

$(document).ready(function(){
  $("div.plan").hide();

  $("input[type=radio]").click(function(){
      $("div.plan").hide();
      $("div[planid=" + $(this).val() +"]").show();
  }).filter(':checked').click();
});
document.location = document.location + "#P1"
这样做的目的是使用已经绑定的处理程序,然后从这些元素中获取
:checked
一个,并执行
单击事件处理程序,显示正确的


顺便说一句,
planid
不是一个有效的属性,如果你在这条路上这么做,那就继续使用,这样你就可以随时使用HTML5(它们在HTML4中没有问题)。

在页面加载时添加你的代码:

$(document).ready(function(){
  $('input:radio:checked').each(function(){
    $('div[planid=' + $(this).val + ']').show();
  });
});

请注意,页面加载时可能会出现flash,而不会显示摘要。

您可以使用URL哈希来维护状态

进行选择后,执行以下操作:

$(document).ready(function(){
  $("div.plan").hide();

  $("input[type=radio]").click(function(){
      $("div.plan").hide();
      $("div[planid=" + $(this).val() +"]").show();
  }).filter(':checked').click();
});
document.location = document.location + "#P1"
当页面重新加载时,在URL中查找哈希并解析另一侧的内容

“#P1”(1=计划1,2=计划2等)


然后相应地调整显示。

这可以用纯CSS处理

为单选按钮指定一些类(plan-1、plan-2、plan-3等),并为
div.plan
元素指定一些要匹配的类(plan-1、plan-2、plan-3等;使用相同的类名即可):


当然,这需要CSS3选择器,javascript可以处理向后兼容性。在CSS中使用
:checked
选择器可以创建纯CSS切换菜单,以及纯CSS手风琴效果。

感谢您的完美工作,并感谢您对该属性的改进。