1

ユーザーがタイトル選択プルダウン メニューでその他を選択したときにテキスト フィールドを表示する最良の方法は何ですか?

私が現時点で持っているコードは次のとおりです。

<%= f.input :parenttitle, label: "Your Title", as: :select, collection:  [["Miss","Miss"],["Mr","Mr"],["Mrs","Mrs"], ["Ms","Ms"],["Other","Other"],["Dr","Dr"]], :include_blank => "-Select one-"  %>
<%= f.input :parenttitle, label: false,  input_html: {  id: "parenttitle_other", value: "" }%>  

次のjsコードを使用して、最初にフィールドを非表示にし、ユーザーが他のフィールドを選択したときに表示します

$("#parenttitle_other").hide()

$("#saolf_parenttitle").change(function() { 
    if ($("#saolf_parenttitle").val()=="Other") 
        $("#parenttitle_other").show(); 
    else $("#parenttitle_other").hide(); 
});

選択フィールドと入力フィールドの両方に同じ変数を使用しました。

ruby/rails を使用するだけでこれをコーディングするためのより良い方法はありますか? 他のフィールドに別の変数を追加し、モデル レベルでそれを元のフィールドに追加する方が良いでしょうか?

4

2 に答える 2

0

入力に同じ名前を使用しないでください。そうしないと、最後の名前だけが使用されます。したがって、選択ボックスから何かを選択した直後に入力ボックスが空白になっparams[:parenttitle]ている場合でも、''.

2番目に名前を付けてparenttitle_other、コントローラーで次のようなことを行うことができます:

parent_title = params[:parenttitle] == 'other' ? params[:parentitle_other] : params[:parenttitle]
于 2013-09-12T08:09:38.743 に答える
0

あなたは大丈夫です私は2番目の変数を使用しなければならず、コントローラーの作成および更新メソッドに次のコードを入れました

if params[:saolf][:parenttitle] == 'Other' 
  params[:saolf][:parenttitle] = params[:saolf][:parenttitleother]
end  

プルダウン選択タイトルフィールドを簡単に追加でき、ユーザーが「その他」を選択すると、テキストフィールドが自動的に表示され、そこから値を入力できるようにする、より良い、より多くのルビー/レールの方法があるかもしれないと私はまだ思っています。

Ruby/Rails でコードを書き始めると、物事を行うためのより良い方法を常に学び、すべてを 1 行で行うことができます。

于 2013-09-13T09:15:40.910 に答える