2015-12-16 66 views
0

我有一個自動完成的文本字段,從名稱數據庫中拉出(分開的第一個/最後一個,但爲了自動完成組合)並將選定的名稱存儲到數組中。我想知道是否可以使用存儲的名稱並將名稱轉換爲數組中的關聯ID。如果可能的話,我將如何去實現該代碼。按名稱搜索但通過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

我想補充填充當你的文本字段更改隱藏字段。

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