【问题标题】:Access rails params hash in jquery在jquery中访问rails params hash
【发布时间】:2015-02-19 14:05:24
【问题描述】:

是否可以在 jquery 中访问 Rails 参数哈希?在提交表单之前,我需要再向参数添加一个键(只不过是表中的一列)。

$('#form_id').submit(function() {
        // do some manipulation to get key
        params[key] = value;
        // params in rails hash 
        $('#form_id').submit();
 });

这可能吗?

【问题讨论】:

    标签: jquery ruby-on-rails ruby-on-rails-4


    【解决方案1】:

    您可以将参数的值分配给 JavaScript 中的变量,但您需要确保 escape the param 以防止可能的 XSS 攻击。

    <script>
      var key = "<%= j(params['key']) %>";
    </script)>
    

    ...但您可能不需要使用 JavaScript。如果您尝试将其中一个参数与表单一起提交,则可以使用隐藏的表单元素轻松传递它:

    <input type="hidden" name="column" value="<%= j(params['key']) %>">
    

    这将导致param[:column] 在表单提交时被设置为给定的参数值。

    【讨论】:

      【解决方案2】:

      是的,这是可能的。

      只需将 jQuery 代码添加到您的模板并像这样调用参数。我不知道你到底想做什么,所以我只展示如何访问 params 哈希。

      Haml 版本:

      :javascript
        console.log "#{j params[:key]}";
      

      ERB 版本:

      console.log "<%= j params[:key] %>";
      

      【讨论】:

      • 这会使您面临潜在的 XSS 攻击...不要这样做。
      • @faraz 我同意这种技术必须小心处理,输入应该检查潜在的攻击等等。但是,它仍然是一种手头的技术,它是问题的正确答案;)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 2015-07-19
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 2014-11-09
      • 1970-01-01
      相关资源
      最近更新 更多