下拉以在选择“其他”时添加输入

Drop down to add input when "Other" is selected

本文关键字:添加 输入 其他 选择      更新时间:2023-09-26

我的表单中有一个下拉列表,当选择"其他"时,需要呈现新的文本输入。我试图用以下内容来做到这一点,但无济于事:

轨道视图

  <div class ="testinputs"
      <li><%= o.input :name, :as => :select, :collection => [:Anniversary, :Birthday, :Graduation, :Holiday, :'Mothers day', :'Fathers day', :'Valentines day', :Wedding, :other ]%></li>
       <%= o.input :name, :as => :hidden %>
  </div>

jquery

$(function() {
    $("#testinputs").change(function() {
        var val = $(this).val();
        if(val == 'other') {
            $('input[name="occasion[name]"]').show();
        } else {
            $('input[name="occasion[name]"]').hide();
        }
    }).change();
});

我的表单呈现的 HTML

<div class="testinputs" <li=""><div class="control-group select required"><label class="select required control-label" for="occasion_name"><abbr title="required">*</abbr> Name</label><div class="controls"><select class="select required" id="occasion_name" name="occasion[name]"><option value=""></option>
    <option value="Valentines day">Valentines day</option>
    <option value="Wedding">Wedding</option>
    <option value="other">other</option></select></div></div>
        <div class="control-group hidden"><div class="controls"><input class="hidden" id="occasion_name" name="occasion[name]" type="hidden"></div></div>
      </div>
我相信

您将输入呈现为 type="hidden",这意味着当您通过 JS 显示它时,它不会被显示。

使用普通文本输入,通过css/js将其隐藏,然后显示它。