0

这是简单形式的 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 中做到这一点?感谢帮助。

4

2 回答 2

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标签,因为它不应该做。

于 2013-10-08T08:34:28.057 回答
0

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

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

如果您想了解有关 javascript 的更多信息。去亚马逊,买一本书,读一读。

于 2013-10-08T08:10:16.440 回答