0

我的页面上有一个选择输入。此选择输入显示/隐藏表单中的字段。这一切都很好。但问题是,如果我提交表单并且缺少一些必要的字段,那么之后它不会将选择设置为正确的值。我只是无法让嵌入式红宝石工作!它一直在逃避整个事情......这是我的代码:

$(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 =>”我在谷歌上搜索堆栈溢出和 railscasts,rails API,一切。我严重困惑...

谢谢你的帮助。

4

3 回答 3

1

您的 JS 脚本不执行嵌入的 ruby​​ 代码。以下是如何解决此问题的说明:

http://bitprison.net/rails3_dynamic_javascript

于 2011-01-13T08:50:20.837 回答
0

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

jsvars[:profile_sex] = @profile.sex

那么你可以做$("#profile_sex").val(profile_sex); 在你的脚本中。它可能会解决你的问题,同时让事情变得更漂亮。

只是一个想法!

于 2010-08-12T08:07:07.680 回答
0

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

如果您需要值周围的刻度线,请尝试' + <%= @profile.sex %> + '

于 2010-08-11T20:38:52.343 回答