【问题标题】:how to make Javascript alert box display a variable from Rails controller如何使 Javascript 警报框显示来自 Rails 控制器的变量
【发布时间】:2016-05-28 16:18:39
【问题描述】:

我的视图文件中有这段 Javascript 代码:

<script>
function hint() {
    var str = @user.name;
    var name = str.toLowerCase();

    alert(name);
}
</script>

我希望警报框显示用户名,因此我使用在控制器中定义的变量@user。但是,当我单击按钮以激活警报框时,什么都没有显示。我也试过 current_user.name,但也没有用。 如何在警告框中显示变量的值?

【问题讨论】:

    标签: javascript ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    保持这样,就像在 html 文件中一样。

     var str = '<%= @user.name %>';
    

    【讨论】:

      【解决方案2】:

      你也可以这样做:

      alert("<%= @user.name.downcase %>");
      

      【讨论】:

        【解决方案3】:

        如果您有一个按钮,那么您不必编写任何 JavaScript 代码(假设确认对话框适合您)。您可以显示一个确认对话框,其中将 data: {confirm: "#{@user.name.downcase}"} 传递给您的 button/submit/link_to 助手:

        <%= f.submit 'Save', data: { confirm: "#{@user.name.downcase}" } %>
        

        此外,它使您能够取消您的按钮/链接点击。

        另一个不使用 JavaScript 的选项是在按钮/链接上使用 onclick 事件:

        <%= f.submit 'Save', onclick: "alert('#{@user.name.downcase}');" %>
        

        或将用户名作为参数传递给您的 JavaScript 函数:

        <%= f.submit 'Save', onclick: "your_function('#{@user.name.downcase}');" %>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-01-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多