将复选框内容添加到文本字段

时间:2016-02-16 20:55:57

标签: ruby-on-rails ruby ruby-on-rails-4 slim-lang

铁杆新手,英语也不太好......我需要一些建议。

我有一份没有详尽药物清单的表格。用户可以选择带复选框的药物。 有一个名为"其他"的复选框。这使得文本字段出现(使用JS脚本)。 此文本字段的内容保存在我的数据库下的列:taken_drugs

这是我到目前为止的代码:

= form_for @quizz, :url => { :action => "create" } do |f|

h4 Which drugs did you take ?
h5 (You can answer more than one)
.field class="list-group"
  div class="list-group-item"
    = check_box("LSD", "yes")
    = label_tag 'LSD'
  div class="list-group-item"
    = check_box("Psilocybine", "yes")
    = label_tag 'Psilocybine (mushrooms)'
  div class="list-group-item"
    = check_box("DMT", "yes")
    = label_tag 'DMT (ayahuasca)'
  div class="list-group-item"
    = check_box("other", "other", {}, "yes", "no")
    = label_tag 'other'
    div id="disappear_consomme" style="display:none"
      p Which other drugs did you take ?
      = f.text_field :taken_drugs
    =f.submit

如何保存到以下结果:take_drugs检查的药物和添加到文本字段的药物?

我需要的例子:

  • 如果用户检查" LSD"和" DMT"我有" LSD DMT"
  • 如果用户检查" LSD"并写下" CANNABIS VALIUM"我有" LSD CANNABIS VALIUM"

1 个答案:

答案 0 :(得分:0)

你有两个选择,你可以用javascript在前端捕获这些数据,或者在发布到数据库之前用Ruby在后端捕获它。

js方式:

var text = "";
for (var i = 0; i < form.elements.length; i++ ) {
    if (form.elements[i].type == 'checkbox') {
        if (form.elements[i].checked == true) {
            text += form.elements[i].value + ' ';
        }
    }

}

坚持一个功能。使用onClick或onSubmit事件处理程序从提交按钮调用它。

ruby​​方式将在您的rails控制器创建方法中处理,并解析您在params哈希中传递的任何内容。