我目前正在使用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”的隐藏字段来实现这一点。然而作为一个铁杆新手我不知道如何编码这个。我想它需要一些javascript,这很好,但谷歌搜索只发现了AJAX-y的东西,我不认为这是必要的。不过,如果有必要,我不会回避它。
答案 0 :(得分:2)
您将创建一个带有一些id的按钮,然后使用javascript绑定到该按钮的click事件。单击该按钮时,您想要更改隐藏字段的值。如果您使用的是jQuery,那就像......
$('#id_of_button').click(function() {
$('#id_of_hidden_field').val("true");
});
然后你就像通常那样检查控制器中的那个值。
如果你没有使用jQuery,那就不是更多的工作,我只是不知道它在我的头脑中。顺便说一句,此代码应位于assets / javascript文件夹中的.js文件中