2016-11-02 13 views
0

オプションが「その他」のときにテキストボックスを表示するドロップダウンフォームを作成しました。もう1つのオプションは正常に機能し、ユーザーは別のオプションを追加できますが、ユーザーが「その他」オプション以外を選択した場合、検証は失敗し、「これは空白にできません」と表示されます。「その他」を選択すると、Railsドロップダウンでテキストボックスが表示されます

このすべてがここに_form.html.erbページ上で行われるが、HTMLであるとRuby:

<div class="field"> 
    <%= f.label 'Escola' %><br> 
    <%= f.select(:school, ["FGV", "Other"]) %> 
    <%= f.text_field :school, class: "school-show", style: "display: none;"%> 

    </div> 

ここではjQueryのです:

<script> 
$(document).ready(function(){ 
$('#professor_school').change(function() { 
    if(this.value == "Other") { 
    $('.school-show').show(); 
    }else{ 
    $('.school-show').hide(); 
    } 
}); 
}); 
</script> 

私は、問題は、私が持っているということだと思います2つのフィールドは、データベースの列 "学校"に入れようとしているが、それは問題を引き起こしているが、私は間違っている可能性があり、私はこれをどうにかして知らない。

答えて

1

これが「ベストプラクティス」であるかどうかわかりませんが、もっと良い方法があると確信していますが、ドロップダウンが変わるたびにテキストフィールドの値を設定します。だから、

$(document).ready(function(){ 
    $('#professor_school').change(function() { 
    if(this.value == "Other") { 
     $('.school-show').val('');  
     $('.school-show').show(); 
    }else{ 
     $('.school-show').val(this.value); 
     $('.school-show').hide(); 
    } 
    }); 
}); 

のようなもの、私はここにhttps://jsfiddle.net/8os10o8L/それを実証したが、それは単純なHTMLですが、あなたのアイデアを得ます。ドロップダウンのパラメータを変更したり、フォームから取り除いて、それ以上の問題にぶつからないようにしてください。

+0

これは、私が実際にドロップダウンを変更した場合、私がページを入力してフォームに記入してもドロップダウンを全く変更しないと少なくとも私にとってはうまくいきます。 – tfantina

+0

あなたは手動でテキストフィールドのデフォルト値を –

+1

のように変更するか、<%= f.text_field:school、value: "FGV" class: "school-show"のように手動でテキストフィールドのデフォルト値を変更するか、 "display:none;"%> –