【问题标题】:How can i change checkbox in rails?我如何更改rails中的复选框?
【发布时间】:2014-09-24 01:32:21
【问题描述】:

如何将复选框设置为真或假。我已经尝试了所有这些组合:

<%= check_box_tag 'prefs[can_be_email_notified]', :id => 'user_preferences_can_email'%> Email 
<%= check_box_tag 'prefs[can_be_email_notified]', '', :id => 'user_preferences_can_email'%> Email
<%= check_box_tag 'prefs[can_be_email_notified]', '', :checked =>'',:id => 'user_preferences_can_email'%> Email

试图用这些改变复选框

document.getElementById("user_preferences_can_email").checked = true;
document.getElementById("user_preferences_can_email").value = true;
document.getElementById("user_preferences_can_email").checked.value = true;

也许我没说清楚……

我有一组设置为按钮的值,并希望根据按钮上设置的值更改复选框以选中或取消选中,

即:

function doubleClickUser(can_email, can_screen) {
        document.getElementById("user_preferences_can_email").checked = can_email;
        document.getElementById("user_preferences_can_screen").checked = can_screen;
}

<button class="button" onclick="doubleClickUser('true','false')"><%= user[:email] %></button>

<%= check_box_tag 'prefs[can_be_email_notified]', :id => 'user_preferences_can_email'%> Email
<%= check_box_tag 'prefs[can_be_screen_notified]', :id => 'user_preferences_can_screen' %> Screen

【问题讨论】:

    标签: javascript ruby-on-rails checkbox


    【解决方案1】:

    在控制器或模型中设置字段的值,然后简单地将元素包含在标准 Rails 表单中:

    # controller
    @pref = Pref.new (or Pref.find(params[:id])
    
    # view
    <%= form_for @pref do |f| %>
      <%= f.label :can_be_email_notified %>
      <%= f.check_box :can_be_email_notified %>
    <% end %>
    

    这将反映can_be_email_notified @pref 的任何值。

    【讨论】:

    • 我会这样做...但这是由 api 发送并在自定义模型中设置值。无法使用 form_for 帮助器,因为此表单用作 api...本地没有存储数据
    【解决方案2】:

    如果你想被检查,试试这个:

    EMAIL
    <%= check_box_tag "email",params[:email].to_s  , {:checked => true}  %>
    

    另外,如果你想赋值,你可以试试这个:

    <%= check_box_tag "email", "5", params[:email].to_s == "5", {:checked => true}  %>
    

    【讨论】:

      【解决方案3】:

      发现你必须先将状态设置为false

      <%= check_box_tag 'prefs[can_be_email_notified]', '', false, :id => 'user_preferences_can_email' %> Email <br>
      <%= check_box_tag 'prefs[can_be_screen_notified]', '', false, :id => 'user_preferences_can_screen' %> Screen <br>
      <%= check_box_tag 'prefs[can_be_sms_notified]', '', false, :id => 'user_preferences_can_sms' %> Text </div></th>
      

      【讨论】:

        猜你喜欢
        • 2016-11-21
        • 1970-01-01
        • 2013-03-06
        • 1970-01-01
        • 2014-06-16
        • 1970-01-01
        • 1970-01-01
        • 2011-12-17
        • 2015-04-09
        相关资源
        最近更新 更多