我有一个下拉菜单,可以从中选择多个值。我已经使用jQuery将其设置为自动完成字段,并且可以正常工作,但是所选值未保存在该字段中。另外,我不能选择多个值。该怎么做?
<%= form.text_field :dropdown_values , {class: 'dev-rule-value-field', multiple: true, size: 20, style: ("display: none" if RulesHelper.method_type(@rule.entity, @rule.method) != "dropdown")} %>
从RulesHelper调用的方法将获得方法基础的类型,下拉菜单的内容将被管理(可以正常工作)。
JavaScript
<script>
//code to get method_type works fine
if(method_type == 'dropdown'){
$("#rule_dropdown_values").show();
}
var autocompleteProps = {
let url = searchUrls[method_model]; // works fine
$.ajax({
url: '/' + url + '.json',
type: "GET",
dataType: "json",
data: { search: {value: request.term} },
success: function(json){
let data = json.data;
if (data != null){
if (data.length > 0){
response($.map(data, function(item){
return { label: item.name || item.id , value: item.name || item.id , id: item.id };
}))
} else {
response([{ label: "No results found." }]);
}
}
}
});
},
// select - not working
select: function(event, ui){
let $autocomplete_input = $(this);
// set value of text field as item label -- not working
$autocomplete_input.val(ui.item.label);
}
};
$('#rule_dropdown_values').autocomplete(autocompleteProps);
});
</script>
在显示页面上,我正在调用@ rule.value,它可以在没有自动完成功能的情况下正常工作,否则不能正常工作。