3

当访问页面的用户是所有者时,我在页面上显示了一个标签列表。我希望这个人能够直接在页面上将标签调整为照片。添加标签后,它将根据照片更新 Acts-as-taggable on 字段。我真的很接近让一切正常工作,唯一无法成功的是远程保存此数据(当我向页面添加提交按钮并单击此按钮时它可以工作。)

Gems:(我手动添加了 Select2 的脚本)

gem 'simple_form'
gem 'acts-as-taggable-on'

我的表格:

<%= simple_form_for [@mountain, @photo], remote: true do |f| %>
    <%= f.input :tag_list, label: false, :input_html => {class: 'select2-container select2-container-multi', style: 'width:100%'}  %>
    <%= f.submit "Update tags" %>
<% end %>

我的愿望是删除此表单中的提交按钮。

这是将表单呈现为带有标签的 Select2 表单的脚本:

<script type="text/javascript">
    $("#photo_tag_list").select2({tags:[], width: 'resolve', placeholder: "Add photo tags" });
    $("#photo_tag_list").on("change", function() { 
        $("#photo_tag_list_val").html($("#photo_tag_list").val());
    });

    $("#photo_tag_list").select2("container").find("ul.select2-choices").sortable({
    containment: 'parent',
    start: function() { $("#photo_tag_list").select2("onSortStart"); },
    update: function() { $("#photo_tag_list").select2("onSortEnd"); }
    });
</script>

我在 chrome 控制台的帮助下尝试了以下操作来尝试提交表单:1)向标签列表添加一个值,2)转到控制台并运行 $("#photo_tag_list").submit();。我收到以下消息,其中我添加的值不在 value="" 内。

<input class=​"string optional select2-container select2-container-multi" id=​"photo_tag_list" name=​"photo[tag_list]​" size=​"50" style=​"width:​ 100%;​ display:​ none;​" type=​"text" value=​"description_blank, pack, champions">​

在此先感谢您的帮助!请让我知道查看更多代码是否有帮助。

4

0 回答 0