【问题标题】:check_box not working in haml form_forcheck_box 在haml form_for 中不起作用
【发布时间】:2016-02-29 10:33:21
【问题描述】:

我使用 form_for 标签制作了一个表单。我必须制作一个带有内联标签的复选框字段,例如

[复选框]请勾选此选项

我一直在尝试许多以前对我有用的选项,但这次它甚至不可见。当我检查元素时,我会得到这样的值。

 = form_for (@subscription ||= Subscription.new),  :html => { :class => "validate formtastic franchise_application", }, url: '/contact_information', :id => "advanced_subscription_form",  :method => "post" do |f|
  %div

    %p
      = f.check_box :is_subscribed, :type => "visible", :value => "1", :checked => "1", :label => "Check here"

输出是这样的

<input name="subscription[is_subscribed]" value="0" type="hidden">
<input value="1" name="subscription[is_subscribed]" id="subscription_is_subscribed" type="checkbox">

我尝试了更多方法,但复选框在屏幕上不可见 = check_box_tag "订阅[is_subscribed]",0, :is_subscribed, :visible => true -#=check_box_tag("is_subscribed")

      -#= check_box_tag :subscription_is_subscribed, 1, :name => "subscription[is_subscribed]"
      -#%input{:name => "subscription[is_subscribed]", :type => "visible", :value => "1"}
      -#%input#subscription_is_subscribed{:name => "subscription[is_subscribed]", :type => "checkbox", :hidden => "false", :value => "1"}
      -#= f.check_box(:is_subscribed, "1", "1")
      -#= f.check_box('subscription','is_subscribed')
      -#= f.label :is_subscribed, :required => false, :hidden => false do
      -#  There you go
      -#  = f.check_box :is_subscribed, :required => false, :hidden => false, :value => true

第一个现在有一个非常好的 html 源代码

= check_box_tag "subscription[is_subscribed]",0, :is_subscribed, :visible => true
<input name="subscription[is_subscribed]" id="subscription_is_subscribed" value="0" visible="true" checked="checked" type="checkbox">

这个隐藏的值是如何在这里显示的。如果有人在这里帮助我,我将非常感激。 我正在使用 Ruby2.2.0 Rails 4.2

【问题讨论】:

    标签: ruby-on-rails ruby forms checkbox haml


    【解决方案1】:

    使用check_box 辅助栏为每个带有选中复选框的项目提供一个额外的幽​​灵项目,该项目仅具有该属性,分配为“0”。

    例子

    = check_box("user", "terms")
    # => <input name="user[terms]" type="hidden" value="0" />
    # => <input checked="checked" type="checkbox" id="user_terms" name="user[terms]" value="1" />
    

    在您的情况下,最好使用check_box_tag

    = check_box_tag 'terms'
    # => <input id="terms" name="terms" type="checkbox" value="1" />
    

    不要忘记= 开始该行...

    【讨论】:

    • 使用包含 html 源代码的视图更新您的答案
    • 我不明白,你需要删除隐藏字段,只包含&lt;input name="subscription[is_subscribed]" id="subscription_is_subscribed" value="0" visible="true" checked="checked" type="checkbox"&gt; 吗?
    【解决方案2】:

    你也可以使用符号...

    = check_box_tag "Accept Terms", :terms
    = check_box_tag :terms
    

    【讨论】:

      猜你喜欢
      • 2014-07-15
      • 2017-03-18
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2014-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多