我有一个自动完成的文本字段,它从名称数据库(首先/最后分开但是为自动完成组合)中提取,并将选定的名称存储到数组中。我想知道是否可以使用存储的名称并将名称转换为数组中的关联ID。如果可能的话,我将如何实现该代码。
(注意:这是动态文本框字段的一部分)
<div class="input_fields_wrap">
<button class="add_field_button">Add More students</button>
<div><g:textField name="student" value="${fieldTripInstance?.student}" class="autocomplete"/></div>
</div>
答案 0 :(得分:0)
我会在文字字段更改时添加一个隐藏字段。
<input type="hidden" name="studentID">
假设您通过异步HTTP请求获取了您的名字,并且考虑到您没有指定任何客户端代码,如下所示:
var students = []; // array of { id, name, ... }
$(function () {
bindAutocomplete(); // bind autocomplete on DOM ready
// auto complete will populate students array
$('input[name="student"]').on('change', function () {
var name = $(this).val();
// find student id from array of known students, or reset value if unknown
$('input[name="studentID"]').val(students.reduce(function (id, student) {
// TODO : perhaps use custom comparator to ignore case,
// accented chars, spaces, etc...
return student.name === name ? student.id : id;
}, '');
});
});