Question

I have a select input on my page. this select input displays/hides fields in the form. This all works fine. But the problem is that if i submit the form and lack some necessary fields, it doesnt set the select to the right value afterwards. I just cant get the embedded ruby to work! it keeps escaping the whole thing... here my 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();
    }       
  });

});

why doesnt this work??? I dont get any error or anything it just sets the value to "<%= @profile.sex =>" I was googling and searching about on stack overflow and railscasts, the rails API, everything. Im seriously confused...

thanks for your help.

Was it helpful?

Solution

Try removing the tick marks around '<%= @profile.sex %>'.

If you need the tick marks around your value, try ' + <%= @profile.sex %> + '

OTHER TIPS

Your JS script doesn't execute embedded ruby code. Here is a description how to resolve this:

http://bitprison.net/rails3_dynamic_javascript

You may want to take a look at jsvars. I am using it in one of my projects and it's pretty great. You can set your javascript variables right in the controller by assigning to a hash:

jsvars[:profile_sex] = @profile.sex

then you could do $("#profile_sex").val(profile_sex); in your script. It might solve your problem and make things prettier at the same time.

Just a thought!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top