1

我有一个 JavaScript 变量:

var selectValUser = $('.select_user :selected').val();

我需要在同一页面的erb代码中使用这个变量,即

<%= get_free_hours_for_user(selectValUser) %>

我该怎么做?

4

2 回答 2

5

你不能这样做,因为 javascript 在客户端运行,而 ERB 文件中的代码在服务器端运行,你可以使用 ajax 请求发送值,另外这里是一个可怕的rails cast

这是从 javascript 向控制器发送消息的示例;当用户单击应用时,我们在控制器中有一个操作“set_id”,它获得电源,进行验证等,在视图中的“id_message”div 中显示消息。

  $('#apply').live('click', function(event, data, status, xhr) {
    event.preventDefault();
    return $.ajax({
      url: '/users/registrations/set_id',
      type: 'GET',
      data: {
        code: $('#user_id').val()
      },
      success: function(data, event, status, xhr) {
        $('#id_message').html(response);
        return $("#id_message").show();
      },
      error: function(event, data, status, xhr) {
        $('#id_message').html(response);
        return $("#id_message").show();
      }
    });
  });

希望它能回答你的问题

于 2012-12-29T09:11:20.243 回答
0

没有办法直接做到这一点。原因是,html 在您的服务器端运行,而 javascript 在您的本地浏览器中运行。

可以在此处找到其他讨论。

如何在 js 视图中将 javascript 变量传递给 erb 代码?

关于不同的尝试方式,你可以从这个开始。

http://jing.io/t/pass-javascript-variables-to-rails-controller.html

http://www.ruby-forum.com/topic/3818171

于 2012-12-29T09:05:25.880 回答