当访问页面的用户是所有者时,我在页面上显示了一个标签列表。我希望这个人能够直接在页面上将标签调整为照片。添加标签后,它将根据照片更新 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">
在此先感谢您的帮助!请让我知道查看更多代码是否有帮助。