2013-10-08 109 views
0

这里是简单形式的quote_task字段。如何在rails 3.2中为simple_form字段添加html链接?

<%= 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中做到这一点?感谢帮助。

回答

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不可能使用

输入:使用jQuery

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

咖啡脚本:

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

简单的解决方案,但更好,如果你加载从服务器的一些内容,你的页面会阿贾克斯http://api.jquery.com/jQuery.ajax/

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

+0

太推!! – user938363

0

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

你可以使用JavaScript来做任何领域应该有的魔法。

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

+0

不要考虑买书是一个可行的解决方案。 – user938363

+0

@ user938363这不会让你走得很远。 downvoting的人也不会那样做。 – phoet

相关问题