我有一个由复选框组成的表单,它在索引页面上过滤记录,如何在表单提交并重新加载页面后,如何使表单中的复选框保持其已检查状态?
我已经在使用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>
非常感谢任何帮助!
答案 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;