我想根据需要在表单中标记一个单选按钮字段,这样,如果用户单击“提交”(不选择单选按钮选项),他将收到一条错误消息,指出该字段是必需的,就像普通输入字段发生的情况一样(当有选项 required: true
时,如图所示)
例如:(这很好用)
= f.input:值,必需:true
但这不起作用:
= f.collection_radio_buttons :some_symbol, [[true, t('yes')], [false, t('no')]], :first, :last, required: true
我正在使用 Rails 5.2、simple_form 和 jQuery,虽然我确信这个用例遇到了许多开发人员,但除了 javascript hacks(我更喜欢避免并更喜欢使用 Rails 或 simple_form 方式)之外,我找不到相关的问题/答案强制执行此前端验证)
最佳答案
检查方法的签名 https://apidock.com/rails/v6.0.0/ActionView/Helpers/FormOptionsHelper/collection_radio_buttons
collection_radio_buttons(object, method, collection, value_method, text_method, options = {}, html_options = {}, &block)
您有一个 options
哈希值,然后是一个 html_options
哈希值。您对该方法的调用是将 required: true
设置为选项,我认为您需要将其设置为 html_option。在 :last
和 required: true
之间添加一个空的 {}
。
= f.collection_radio_buttons :some_symbol, [[true, t('yes')], [false, t('no')]], :first, :last, {}, required: true
关于javascript - Rails 5 simple_form 根据需要标记单选按钮并在未填写时阻止表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58188418/