nhy*_*yne 5 ruby ruby-on-rails select2-rails
我将 select2 用于多重选择器。目前这是在我的 HTML 文件中:
 <%= form.select "page_request_set_ids", @multiautocomplete_set_options.unshift(""),
 {}, id: "page-request-sets", multiple: true,
 allowClear: true, data: {placeholder: "Start typing sets..."} %>
@multiautocomplete_set_options是一个字符串数组。当我:page_request_set_ids稍后访问时,我输入的字符串和一个空字符串都在那里。
我试图删除unshift(""),它保留了我的占位符,但没有删除:page_request_set_ids.
有任何想法吗?
直接取自select 文档:
陷阱
HTML 规范规定,当多个参数传递给 select 并且所有选项都被取消选择时,Web 浏览器不会向服务器发送任何值。不幸的是,这引入了一个陷阱:如果用户模型具有许多角色并且具有 role_ids 访问器,并且在编辑用户角色的表单中,用户从 role_ids 多个选择框中取消选择所有角色,则不会发送 role_ids 参数。所以,任何像这样的批量分配习惯用法
@user.update(params[:user])
不会更新角色。
为了防止这种情况,助手在每次多重选择之前生成一个辅助隐藏字段。隐藏字段与多选和空白值同名。
注意:客户端要么只发送隐藏字段(表示取消选择的多选框),要么发送这两个字段。这意味着结果数组始终包含空白字符串。
如果您不希望帮助程序生成此隐藏字段,您可以指定include_hidden: false选项。
所以底线是添加:
include_hidden: false
| 归档时间: | 
 | 
| 查看次数: | 1661 次 | 
| 最近记录: |