按名称搜索,但按ID保存

时间:2015-12-16 18:46:41

标签: jquery grails gorm

我有一个自动完成的文本字段,它从名称数据库(首先/最后分开但是为自动完成组合)中提取,并将选定的名称存储到数组中。我想知道是否可以使用存储的名称并将名称转换为数组中的关联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>

1 个答案:

答案 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;
    }, '');
  });
});