【问题标题】:Rails , Formtastic : Three "submit" button, each sets the value of a particular attribute differentlyRails , Formtastic : 三个“提交”按钮,每个按钮设置特定属性的值不同
【发布时间】:2012-04-03 20:33:04
【问题描述】:

晚上好,

我想设置一个带有单个字段(名称)的表单,用户在其中输入他们的姓名,然后他们选择三个按钮之一。

每个按钮都应该同时设置一个特定的属性值,并提交表单。

一个人为的例子(“xxxx”是一个按钮):

Name : _________
"Good" "Sad" "Tired"

这将保存用户的名字,然后是/否/也许到“users_feeling”属性。我不想为用户感觉属性设置一个单选框,然后是一个单独的提交按钮。

如果您能提供任何帮助,我们将不胜感激!

【问题讨论】:

  • 这可能是不使用formtastic可能更简单的情况。
  • 我实际上是在发布此消息 5 分钟后想的......老实说,我还是个初学者......每个按钮我会使用什么 html 元素?我还可以使用
  • 希望答案有所帮助。它相当笼统,但我希望你能用它来解决问题。

标签: ruby-on-rails button formtastic


【解决方案1】:

通常有两种方法可以做到这一点。

恕我直言,更好的方法是简单地将要设置的属性添加为隐藏字段,然后编写一些 javascript 将其设置为按钮上的某些数据属性。类似this:

$('.my_form button').click ->
  $('#my_hidden_field').val ($ @).data 'attribute-name'
  $('.my_form')[0].submit()

另一个是每个提交按钮在提交表单时都会将其value作为参数传递。您可以像任何其他值一样在 Rails 控制器中检测到这一点。所以如果你有这个 HTML:

<input type=submit name=feeling value=Good />
<input type=submit name=feeling value=Sad />
<input type=submit name=feeling value=Tired />

然后在您的控制器中params[:feeling] 应该保存单击按钮的值。为什么我不特别喜欢这个解决方案是value 字符串也是显示给用户的内容,它将您的控制器与您的视图相当糟糕地结合在一起。如果将来您想本地化您的应用程序,这可能会给您带来麻烦。

【讨论】:

  • 谢谢!!感谢您的帮助 - 抱歉,它太基础了 :)
  • 一个微小的修改:为每个按钮使用不同的名称,并测试是否存在值。只有您点击的按钮才会被发送到服务器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
  • 2012-06-16
  • 2018-11-24
  • 2011-05-09
  • 1970-01-01
相关资源
最近更新 更多