如何防止表单提交或页面刷新后取消选中复选框?

时间:2013-02-28 22:34:32

标签: javascript jquery ruby-on-rails-3.2

我在使用Ruby on Rails 3.2时遇到了复选框问题。复选框值通常保存到数据库中,但是当我刷新页面或单击表单上的“提交”按钮时,复选框不会保持选中状态,我不知道我在这里缺少什么。每次刷新或提交时,都会取消选中。我很感激你的帮助。复选框has_available_space是一个布尔数据库值。

数据库(复选框值)

    create_table :user_location do |t|
      t.boolean :has_available_space
    end  

路线

    namespace :users do
       match 'update_location' => 'location#update', :via => [:post]
    end

模型用户

    has_one :user_location

模型用户位置

    belongs_to :user

控制器

    def update 
     @user = User.find(params[:id])
     if @user.user_location.nil?
         @user.user_location = UserLocation.new
     end
     @user.user_location.has_available_space = params[:checkbox_has_available_space]
     @user.save!
     @user.user_location.save!
     redirect_to '/users/location'
    end

查看

    <form id = 'location_form' action="/users/update_location" method="post">
       <input type="hidden" name="id" value="<%= @user.id %>" />
       <input id = 'has_available_space' type="checkbox" name="checkbox_has_available_space" value = '<%= @user.user_location.has_available_space %>' >I have available space
    </form> 

1 个答案:

答案 0 :(得分:0)

您需要将checked属性添加到复选框元素:

`<input type="checkbox" checked />`