我创建了一个带有多个 select 和 collection_select 元素的 rails (v5) 表单。然后我使用 Select2-rails (v4.0.3) 来允许看起来像标签的漂亮选择。搜索选项由 ajax 提取。
在按下缺少必填字段的提交按钮之前,它工作正常。有效的字段内容现已从字段中删除。
让我给出一些示例代码:
控制器:
...
def form
if params[:form_request].nil?
@form_request = FormRequest.new
else
@form_request = FormRequest.new(params[:form_request])
end
end
def request_form
@form_request = FormRequest.new(params[:form_request])
if @form_request.valid?
render :summary
else
render :form
end
end
...
形式:
...
<%= bootstrap_form_for(@form_request, url: '/form/request_form') do |f| %>
<%= f.select :field, [], {label: 'Field label'} %>
<%= f.submit "Submit form" %>
<% end %>
:field 肯定是模型中的可写字段(并且数据设置得很好)
咖啡脚本:
Query ->
$("#form_request_from").select2({
ajax: {
url: func =(params) ->
filter = params.term
return "/data.json?filter=" + filter;
,
dataType: 'json',
processResults: processData
},
theme: 'bootstrap',
placeholder: 'Enter data here'
});
processData = (data) ->
mapdata = $.map(data, func =(obj) ->
obj.id = obj.id;
obj.text = obj.name;
return obj;
);
return { results: mapdata };
我正在考虑很多可能性,但最后我不确定现场数据来自哪里。它在对象内部,但不会以任何方式写入生成的 HTML。即使将 id 写为选定选项,select2 脚本也需要知道如何将其转换为字符串以显示真实数据。
知道如何在验证失败后实现数据仍写入字段吗?