Ruby on rails 保存前请检查帖子的类别
我有一个模型呼叫职位,和其他模型呼叫类别,其中一个职位有多个类别 在我的新帖子中,我的所有类别都像一个按钮,我通过点击来选择类别并更改按钮的类别。(显示按钮) 当我点击提交按钮时,如何知道用户是否点击了任何类别?没有javascript/ajax就可以做到这一点 我想在保存邮件之前做这个检查 这是我的分类按钮Ruby on rails 保存前请检查帖子的类别,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有一个模型呼叫职位,和其他模型呼叫类别,其中一个职位有多个类别 在我的新帖子中,我的所有类别都像一个按钮,我通过点击来选择类别并更改按钮的类别。(显示按钮) 当我点击提交按钮时,如何知道用户是否点击了任何类别?没有javascript/ajax就可以做到这一点 我想在保存邮件之前做这个检查 这是我的分类按钮 .row-fluid .field = f.label :category - @categories.each do |cate| =
.row-fluid
.field
= f.label :category
- @categories.each do |cate|
= button_tag(:class=> 'categoryButton', :type =>'button', :value=> cate.id) do
= content_tag(:strong, cate.name)
.row-fluid
.actions.pull-right
= f.submit t(:save)
:javascript
$(document).ready(function(){
$('.categoryButton').click(function(){
if (this.className == "categoryButtonCambiado")
this.className=this.className ="categoryButton"
else
this.className=this.className ="categoryButtonCambiado"
});
})
任何想法 您可能应该将其作为复选框而不是按钮来实现,这对于实现和用户习惯来说都更为自然 如果您确实想使用按钮,您仍然可以添加复选框,使其隐藏(使用
隐藏类,因为您似乎正在使用引导),并使用javascript选中/取消选中它们:
.row-fluid
.field
= f.label :category
- @categories.each do |cate|
= check_box_tag "categories[#{cate.id}]", '1', false, class: 'hidden'
= button_tag(:class=> 'categoryButton', :type =>'button', :value=> cate.id) do
= content_tag(:strong, cate.name)
.row-fluid
.actions.pull-right
= f.submit t(:save)
:javascript
$(document).ready(function(){
$('.categoryButton').click(function(){
if (this.className == "categoryButtonCambiado")
this.className=this.className ="categoryButton"
$(this).prop( 'checked', true );
else
this.className=this.className ="categoryButtonCambiado"
$(this).prop( 'checked', false );
});
})
然后,您可以在控制器中检索选中的类别ID:
params[:categories]