0

我正在开发 Rails 应用程序。
如果您单击该按钮,它会自动将@keyword 输入到body_input
I want it with link_to 而不是 button_to。
我怎样才能?

看法

<%= button_to "Populate the chat box", "#name", :id => :username, :value => @keyword %>

jQuery

$(document).ready(function(e) {
     $('button#username').click(function () {
         e.preventDefault();
         $(".chat_input#body_input").val($(this).attr('value'));
     });
});

附加信息(这是 HTML 中的输出 javascript)

<script type="text/javascript">
    //<![CDATA[     
        $(document).ready(function(e) {
             $('button#username').click(function () {
                 e.preventDefault();
                 $(".chat_input#body_input").val($(this).attr('value'));
             });
        });
    //]]>
</script>
4

2 回答 2

1

以下两个在功能上是等价的,但在标记上不一样:

<%= link_to "Populate the chat box", "#name", :id => :username, :value => @keyword %>
<%= button_to "Populate the chat box", "#name", :id => :username, :value => @keyword %>

正如评论者PSL敏锐地指出的那样,如果您决定使用 alink_to跳转到命名锚点,则需要修改 jQuery 函数以删除e.preventDefault()

$(document).ready(function() {
     $('a#username').click(function () {
         $(".chat_input#body_input").val($(this).attr('value'));
     });
});
于 2013-06-16T04:55:14.607 回答
1

我不熟悉 ROR 语法,但试试这个:

<%= link_to "Populate the chat box", "#name", :id => :username, :value => @keyword %>

并且(ID 必须是唯一的,因此在 ID 上的 jquery 选择器中不要使用标记名#Id 只使用 ID)

$(document).ready(function(e) {  
     $('#username').click(function () {  
         e.preventDefault();
         $(".chat_input#body_input").val($(this).attr('value'));
     });
});
于 2013-06-16T04:59:28.813 回答