我正在尝试使用以下方法在rails中制作一个单选按钮:
<%= f.radio_button :category_id, "1" %>
问题是它默认被选中,我不希望用户能够提交表单而不先明确点击一个(基本上我希望在页面加载时取消选中它)
问题是如果它出错并且页面重新加载,如果我添加:checked => false
它似乎会覆盖用户在收到错误之前输入的内容,并且他们必须再次单击它。
谢谢!
我正在尝试使用以下方法在rails中制作一个单选按钮:
<%= f.radio_button :category_id, "1" %>
问题是它默认被选中,我不希望用户能够提交表单而不先明确点击一个(基本上我希望在页面加载时取消选中它)
问题是如果它出错并且页面重新加载,如果我添加:checked => false
它似乎会覆盖用户在收到错误之前输入的内容,并且他们必须再次单击它。
谢谢!
FormBuilder
助手(每次调用 block 参数 oh a 的输入法时都会使用form_for
)将始终反映相应属性的当前值。所以:
<%= form_for @post do |f| %>
<%= f.radio_button :category_id, "1" %>
…仅在以下情况下才会被检查@post.category_id == "1"
听起来您想要做的是在渲染视图之前确保模型的状态是正确的。
如果您想了解选中按钮的状态,您必须以某种方式保存它并将该信息返回到视图中。您可以手动执行此操作,也可以按照 apidock 中的说明让 radio_button处理
# Let's say that @post.category returns "rails":
radio_button("post", "category", "rails")
radio_button("post", "category", "java")
# => <input type="radio" id="post_category_rails" name="post[category]" value="rails" checked="checked" />
# <input type="radio" id="post_category_java" name="post[category]" value="java" />