質問

ページに選択された入力があります。この選択入力は、フォームのフィールドを表示/非表示にします。これはすべて正常に機能します。しかし、問題は、フォームを送信して必要なフィールドが不足している場合、その後選択を適切な値に設定しないことです。埋め込まれたルビーを動作させることはできません!それは全体を逃げ続けます...ここで私のコード:

$(document).ready(function() {
$("#profile_sex").val('<%= @profile.sex %>')
   $("#profile_sex").change(function(){



    ($(this).val() == "Frau") ? $('#form-female').show() : $('#form-female').hide();
    ($(this).val() == "Mann") ? $('#form-male').show() : $('#form-male').hide();
    if ($(this).val() == "Paar") {
        $('#form-female').show(); 
        $('#form-male').show();
    }       
  });

});

なぜこれが機能しないのですか?エラーや何かを「<%= @profile.sex =>」に設定するだけでは、スタックオーバーフローとRails API、すべてを検索していました。私は真剣に混乱しています...

ご協力いただきありがとうございます。

役に立ちましたか?

解決

ティックマークを取り外してみてください '<%= @profile.sex %>'.

あなたの価値の周りにティックマークが必要な場合は、試してみてください ' + <%= @profile.sex %> + '

他のヒント

JSスクリプトは、組み込みRubyコードを実行しません。これを解決する方法は次のとおりです。

http://bitprison.net/rails3_dynamic_javascript

あなたは見たいかもしれません jsvars. 。私は自分のプロジェクトの1つでそれを使用していますが、それはかなり素晴らしいです。ハッシュに割り当てることにより、javaScript変数をコントローラーに正しく設定できます。

jsvars[:profile_sex] = @profile.sex

そうすれば、できます $( "#profile_sex")。val(profile_sex); あなたのスクリプトで。それはあなたの問題を解決し、同時に物事をよりきれいにするかもしれません。

ちょっとした考え!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top