我目前正在使用 Rails 的“Devise”插件来处理登录/身份验证。我使用非常基本的 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 的东西,我认为这是没有必要的。不过,如果有必要,我不会回避它。
最佳答案
您将创建一个带有某个 id 的按钮,然后使用 javascript 绑定(bind)到该按钮的单击事件。单击该按钮时,您想要更改隐藏字段的值。如果你使用 jQuery,它会是这样的......
$('#id_of_button').click(function() {
$('#id_of_hidden_field').val("true");
});
然后您只需像平常一样在 Controller 中检查该值即可。
如果您不使用 jQuery,则不需要做太多工作,我只是不知道它在我的脑海中。顺便说一句,此代码应位于 asset/javascript 文件夹中的 .js 文件中
关于ruby-on-rails - 将 'Remember Me' 复选框转入提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11251642/