문제

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.

도움이 되었습니까?

해결책

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

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

다른 팁

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!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top