这是简单形式的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中执行此操作?谢谢你的帮助。
答案 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的信息。去亚马逊,买书,读它。