ERBはJavaScriptスクリプトで実行されません
-
27-09-2019 - |
質問
ページに選択された入力があります。この選択入力は、フォームのフィールドを表示/非表示にします。これはすべて正常に機能します。しかし、問題は、フォームを送信して必要なフィールドが不足している場合、その後選択を適切な値に設定しないことです。埋め込まれたルビーを動作させることはできません!それは全体を逃げ続けます...ここで私のコード:
$(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コードを実行しません。これを解決する方法は次のとおりです。
あなたは見たいかもしれません jsvars. 。私は自分のプロジェクトの1つでそれを使用していますが、それはかなり素晴らしいです。ハッシュに割り当てることにより、javaScript変数をコントローラーに正しく設定できます。
jsvars[:profile_sex] = @profile.sex
そうすれば、できます $( "#profile_sex")。val(profile_sex); あなたのスクリプトで。それはあなたの問題を解決し、同時に物事をよりきれいにするかもしれません。
ちょっとした考え!
所属していません StackOverflow