我的页面上有一个选择输入。此选择输入显示/隐藏表单中的字段。一切正常。但问题是,如果我提交表单并缺少一些必要的字段,那么之后就不会将select设置为正确的值。我只是不能让嵌入式红宝石工作!它总是逃避整个事情...在这里我的代码:
$(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();
}
});
});
为什么这不起作用? 我没有得到任何错误或任何它只是将值设置为“&lt;%= @ profile.sex =&gt;” 我正在谷歌搜索和搜索堆栈溢出和railscasts,rails API,一切。我很困惑......
感谢您的帮助。
答案 0 :(得分:1)
您的JS脚本不执行嵌入式ruby代码。以下是如何解决此问题的说明:
答案 1 :(得分:0)
尝试删除'<%= @profile.sex %>'
周围的刻度线。
如果您需要围绕值的刻度线,请尝试' + <%= @profile.sex %> + '
答案 2 :(得分:0)
您可能需要查看jsvars。我在我的一个项目中使用它,它非常棒。您可以通过分配哈希来在控制器中设置您的javascript变量:
jsvars[:profile_sex] = @profile.sex
然后你可以在你的脚本中执行 $(“#profile_sex”)。val(profile_sex); 。它可以解决你的问题,同时让事情变得更漂亮。
只是一个想法!