0

当用户从下拉列表中选择一个选项时,我试图在表单中显示一个字段 - 即,如果他们从下拉列表中选择“其他”,则下拉列表下方会出现一个字段,显示“请指定”。我似乎根本无法让它工作——“请指定”字段始终可见。我哪里错了?谢谢!

<script>
$(function(){
    $("#pref-select").change(function(){
        if ($("#pref-select").val()=="Other"){
            $("#other-pref").show();
        } else {
            $("#other-pref").hide();
        }
    })
})
</script>

<div class="field">
  <%= f.label :pref %><br />
  <%= f.select :pref, ["", "1", "2", "Other"], {:id => "pref-select"} %>
</div>
<div class="field" id="other-pref">
  <%= f.label :other_preference %><br />
  <%= f.text_area :other_pref %>
</div>
4

2 回答 2

8

你可以这样做:http: //jsfiddle.net/vooboo13/RK97r/1/

你给你不想显示css值的字段 display:none;

然后,您使用 jQuery 来监视某个值并在它是该值时显示它。

HTML:

选择“法币”,见证奇迹发生

<form action="" id="cars">
    <select name="cars" id="car_selector">
        <option value="volvo">Volvo</option>
        <option value="saab">Saab</option>
        <option value="fiat">Fiat</option>
        <option value="audi">Audi</option>
    </select>
    <p>&nbsp;</p>
    <label class="hidden_option">Why would you DO that?</label>
    <input type="text" name="reason" class="hidden_option" />
</form>

JS:

$(document).ready(function(){
    $("#car_selector").change(function(){
        if($("#car_selector").val() == "fiat"){
          $(".hidden_option").fadeIn('fast');   
        }            
    });        
});

CSS:

.hidden_option{
 display: none;   
}
于 2012-10-05T13:35:55.957 回答
1

我从未尝试过,但您听说过相关字段-rails gem吗?

于 2013-11-27T15:15:23.197 回答