在提交和页面重新加载后,我的表单复选框如何保持其状态?

时间:2011-06-24 21:31:33

标签: jquery ruby-on-rails forms state

我有一个由复选框组成的表单,它在索引页面上过滤记录,如何在表单提交并重新加载页面后,如何使表单中的复选框保持其已检查状态?

我已经在使用jQuery-UI使复选框看起来更好了。我对任何类型的编程都很陌生,并且javascript运气不佳。

index.html.erb

<script>    
  $(function() {
    $(".areas").buttonset();
  });

  $(function() {
    $( "button, input:submit, a", ".filter_form_button" ).button();
    $( "a", ".form_filter_button" ).click(function() { return false; });
  });
</script>

<div class="filter_options_container">
  <%= form_tag '', :method => :get, :id => 'filter_form' do %>        

    <fieldset class="filter_form_fieldset areas">
      <% Area.all.each do |a| %>
        <p class="area_check"><%= check_box_tag 'areas[]', a.id, false, :id => "area-#{a.id}" %>
        <label for="area-<%= a.id %>"><p1><%= a.name %></p1></label></p>
      <% end %>
    </fieldset>

    <div class="filter_form_button">
      <p2><input type="submit" value="Filter"/></p2>
    </div>
  <% end %>
</div>

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:3)

我发现这个jQuery插件可以在您离开并返回时保持表单填写。似乎工作得很好。 dumbFormState

答案 1 :(得分:1)

您必须在某处保存其状态,然后在实例化复选框时加载其状态。这可能会有所帮助:http://www.webdevelopersnotes.com/tips/html/finding_the_value_of_a_checkbox.php3

但实际情况是,您需要一种允许您保存页面“当前状态”的设计。

答案 2 :(得分:0)

在表单提交时获取复选框的状态。然后将其传递给视图。通过jquery设置值。

就像你在提交表单时得到一个复选框的已检查值为2,然后你得到它并传递给视图

$this->view->checkbox1 = 2 ;

然后在jaquery

var val = <?php echo $this->checkbox1 ; ?>;

$("#mycheckbox")[val].checked = true;