如何在rails 3.2中为simple_form字段添加html链接?

时间:2013-10-08 03:45:45

标签: ruby-on-rails-3 forms simple-form

这是简单形式的quote_task字段。

<%= f.input :quote_task, :label => t('Quote Task'), :input_html => {:value => @quote_task.id}, :readonly => true %> 

现在我们要为@ quote_task.id添加一个嵌入的html链接来显示quote_task的内容。当用户单击id时,他将被定向到报价任务的内容。类似的东西:

<%= f.input :quote_task, :label => t('Quote Task'), :input_html => {:value => (link_to @quote_task.id.to_s, quote_task_path(@quote_task.id))}, :readonly => true %> 

有没有办法在simple_form中执行此操作?谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

您对HTML的期望超越了任何可能的语义。

http://www.w3schools.com/tags/tag_input.asp http://www.w3.org/html/wg/drafts/html/master/forms.html#the-input-element

是的,当单击输入时,它可能会显示所需的内容。但是没有JS这是不可能的

输入:

<%= f.input :quote_task, :label => t('Quote Task'), :readonly => true, class="redirecter", :'data-quote-task-path'=>quote_task_path(@quote_task.id) %> 

使用jQuery的咖啡脚本:

#app/assets/javascript/my_input.coffee
jQuery ->
  $('input.redirecter').click ->
     path = $(this).data('quote-task-path')
     document.write(path); # ugly redirect, use Ajax 

简单的解决方案,但如果您使用Ajax http://api.jquery.com/jQuery.ajax/

将一些内容从服务器加载到您的页面,那就更好了

但我的意见是你不应该这样做。输入用于表单,表单用于提交数据。你应该真正使用的是纯link_to,由于HTML语义而没有任何输入。如果你希望它看起来像输入,你可以将它设计为看起来像输入,点不是强奸input标签,它不应该做什么。

答案 1 :(得分:0)

无法在输入字段中嵌入锚点。

您可以使用javascript来执行该字段应具备的任何魔法。

如果你想了解更多关于javascript的信息。去亚马逊,买书,读它。