ERB leider nicht in der Javascript-Skripte ausgeführt werden sollen
-
27-09-2019 - |
Frage
habe ich einen Auswahleingang auf meiner Seite. Wählen Sie diese Einstellung Eingabeanzeigen / Haut Felder im Formular. Das alles funktioniert gut. Aber das Problem ist, dass, wenn ich die Form und fehlen einige notwendige Felder einreichen, es danach die Auswahl auf den richtigen Wert gesetzt doesnt. Ich kann einfach nicht den eingebetteten Rubin an der Arbeit! es hält das Ganze zu entkommen ... hier mein Code:
$(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();
}
});
});
warum tun diese Arbeit ??? Ich habe nicht einen Fehler bekommen oder irgendetwas es setzt nur den Wert auf „<% = @ profile.sex =>“ Ich war googeln und auf der Suche über auf Stack-Überlauf und Railscasts, den Schienen-API, alles. Im ernsthaft verwirrt ...
Danke für Ihre Hilfe.
Lösung
Versuchen Sie, die Strichmarkierungen um '<%= @profile.sex %>'
zu entfernen.
Wenn Sie die Strichmarkierungen um den Wert benötigen, versuchen ' + <%= @profile.sex %> + '
Andere Tipps
Ihr JS-Skript ausführen kann leider keine eingebetteten Ruby-Code. Hier ist eine Beschreibung, wie diese zu beheben:
Sie können einen Blick nehmen wollen unter jsvars . Ich benutze es in einem meiner Projekte und es ist ziemlich groß. Sie können Ihre Javascript Variablen direkt im Controller auf einen Hash durch die Zuordnung:
jsvars[:profile_sex] = @profile.sex
dann könnten Sie tun, $ ( "# profile_sex") val (profile_sex);. in Ihrem Skript. Es könnte Ihr Problem und die Dinge Prettier zur gleichen Zeit lösen.
Nur ein Gedanke!