2

當我選擇「其他」時,我的窗體中需要顯示新文本輸入的下拉列表。我曾嘗試用下面無濟於事做到這一點:當選擇「其他」時,請下拉以添加輸入

Rails視圖

<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> 
+1

** type =「hidden」**的輸入字段將始終保持隱藏狀態。創建一個普通的文本字段並使用屬性,如** display:block或none; **或** visibility:hidden ** – Jebin

回答

3

我相信你正在渲染你的輸入爲type =「hidden」,這意味着當你通過JS顯示它時,它不會被顯示。

使用正常的文本輸入,通過css/js隱藏然後顯示它。

相關問題