2

我目前正在使用 Rails 的“设计”插件来处理登录/身份验证。我正在使用一个非常基本的form_for标签来处理登录表单。这是代码:

<div class="well-outer splash-signin-block">
  <div class="well-inner">
    <h2>Sign in</h2>
    <div>
      <%= form_for(resource, as: resource_name, url: user_session_path, html: {
        class: "form-inline"
      }) do |f| %>
        <p><%= f.text_field :email, placeholder: "Email", autofocus: true %></p>
        <p><%= f.password_field :password, placeholder: "Password" %></p>
        <p>
          <%= f.submit 'Sign in', class:"btn btn-primary btn-large" %>
          <%= f.check_box :remember_me, class: "checkbox" %>
          <%= f.label :remember_me %>
        </p>
      <% end %>
    </div>
  </div>
</div>

但是,我想将“记住我”复选框更改为一个按钮。用户体验将是他们可以单击“登录”(默认操作),也可以单击“记住我”以持续登录。

在幕后,我想这可以通过使用将resource[remember_me]属性设置为“1”的隐藏字段来实现。然而,作为一个 Rails 新手,我不知道如何编写这个代码。我想它需要一些 javascript,这很好,但是谷歌搜索只发现了 AJAX-y 的东西,我认为这没有必要。不过,如果有必要,我不会回避它。

4

1 回答 1

2

您将创建一个带有一些 id 的按钮,然后使用 javascript 绑定到该按钮的单击事件。单击按钮时,您想要更改隐藏字段的值。如果您使用的是 jQuery,那将类似于...

   $('#id_of_button').click(function() {
     $('#id_of_hidden_field').val("true");
   });

然后,您只需像往常一样在控制器中检查该值。

如果您不使用 jQuery,那么它的工作量并不大,我只是不知道它在我的脑海中。顺便说一句,此代码应位于 assets/javascript 文件夹中的 .js 文件中

于 2012-06-28T19:51:01.017 回答