2010-08-11 70 views
0

我的页面上有一个选择输入。此选择输入显示/隐藏表单中的字段。这一切工作正常。但问题是,如果我提交表单并且缺少一些必要的字段,那么事后它不会将select设置为正确的值。我只是不能让嵌入的红宝石工作!它不断逃避整个事情...在这里我的代码:ERB不会在JavaScript脚本中执行

$(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 =>” 我是googling和搜索堆栈溢出和railscasts,rails API,一切。我很困惑...

感谢您的帮助。

回答

0

尝试清除'<%= @profile.sex %>'周围的刻度线。

如果你需要在你的价值刻度线,尽量' + <%= @profile.sex %> + '

+0

更妙的是,使用@ profile.sex.inspect或@ profile.sex.to_json,以防止任何杂散引号破坏您的脚本。 – jdeseno 2010-08-11 22:52:58

+0

得到它的工作,谢谢。 @jdeseno: 会做。 – KimJongIl 2010-08-12 08:45:42

0

你可能想看看jsvars。我在我的一个项目中使用它,它非常棒。您可以将其分配给哈希设置你的JavaScript变量权控制器:

jsvars[:profile_sex] = @profile.sex 

那么你可以做$( “#profile_sex”)VAL(profile_sex)。在您的脚本。它可以解决你的问题,并在同一时间做更漂亮的事情。

只是一个念头!

+0

谢谢你,我肯定会看看! – KimJongIl 2010-08-12 08:45:02