导轨,表单:三个"submit"按钮,每个按钮以不同的方式设置特定属性的值



晚上好,

我想设置一个具有单个字段(名称)的表单,用户在其中输入自己的名称,然后从三个按钮中选择一个。

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

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

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

这将保存用户名,然后是/否/可能保存到"users_feeling"属性。我不想有一个用户感觉属性的单选框,然后有一个单独的提交按钮。

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

通常有两种方法。

IMHO更好的方法是简单地将要设置的属性添加为隐藏字段,然后编写一些javascript将其设置为按钮上的某个数据属性。类似这样的东西:

$('.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字符串也是显示给用户的,它将您的控制器与您的视图非常糟糕地耦合在一起。如果将来你想本地化你的应用程序,这可能会影响你。

最新更新