问题
Can someone tell me how to set these check boxes to checked? I'm sure it's simple, but after an hour of trying i think I need to ask! Thanks!
= form_tag movies_path, :id => 'ratings_form', :method => :get do
Include:
- @all_ratings.each do |rating|
= rating
= check_box_tag "ratings[#{rating}]",
= submit_tag 'Refresh', :id => 'ratings_submit'
回答1:
Ref check_box_tag
check_box_tag "ratings[#{rating}]", 1, !!(rating.rating)
Your 2nd parameter
must be value
of checkbox
Your 3rd parameter
must be a boolean condition
which return true/false
and depends on it checkbox is checked/unchecked
回答2:
check_box_tag "ratings[#{rating}]", 1, @selected.include?("#{rating}")
where @selected
is an array with the element selected.
回答3:
According to the api dock, check box tag takes the following options:
check_box_tag(name, value = "1", checked = false, options = {})
This means the first value is the name, the second value is a 'value' and the third value is whether the box is checked, which is default to false. So, in order to check or uncheck the box you can do the following:
- if (some condition)
= check_box_tag "ratings[#{rating}]", "anystring", true
- else
= check_box_tag "ratings[#{rating}]"
The second line just puts a random string into the value field because in this case it does not matter.
回答4:
Use true for Checked or false for Unchecked at the end of the line
check_box_tag "ratings[#{rating}]", true #checked
or
check_box_tag "ratings[#{rating}]", false #unchecked
回答5:
Building on the answer by Sali. Strangely, the check_box_tag
returns a checkbox with no label text. Here's how you can display text if you're iterating over an array.
- Puppies.each do |puppy|
= check_box_tag(puppy.name, puppy.name, puppy.goodboy?)
= puppy.name
回答6:
= check_box_tag "ratings[#{rating}]",{},{:checked => ""}
来源:https://stackoverflow.com/questions/12957348/how-to-check-a-check-box-in-haml-using-check-box-tag