我有一个链接,当用户单击时我需要向它添加一个额外的参数,这个参数应该在运行时从输入文本中读取,就像这样
=link_to "Today", api_retrieve_index_path(campaign_id: "$('#campaign_id').val()", start: (Time.now-1.day).utc.iso8601, end: (Time.now).utc.iso8601), method: :post, remote: true
有没有办法做到这一点?谢谢
我有一个链接,当用户单击时我需要向它添加一个额外的参数,这个参数应该在运行时从输入文本中读取,就像这样
=link_to "Today", api_retrieve_index_path(campaign_id: "$('#campaign_id').val()", start: (Time.now-1.day).utc.iso8601, end: (Time.now).utc.iso8601), method: :post, remote: true
有没有办法做到这一点?谢谢
您应该通过观察链接上的单击操作在客户端执行此操作:
$('a#my_link').on('click', function() { this.href = this.href + '&campaign_id=' + $('#campaign_id').val() }
或者对于现代的、与 Turbolinks 兼容的方法:
$(document).on('click', 'a#my_link', function() { this.href = this.href + '&campaign_id=' + $('#campaign_id').val() }
这会在用户单击链接时、但在浏览器导航链接之前将campaign_id 添加到链接中。
请注意,这是粗略的代码,因为它假定查询字符串已经存在,因此总是添加一个 & 符号。