Как просмотреть метку и отправить идентификатор в автозаполнении jquery

0

У меня есть поле поиска, в котором используется автозаполнение jquery. В этом текстовом поле, в котором указывается список имен сотрудников, предложенных автозаполнением. Но когда моя форма отправлена, я не хочу, чтобы имя человека отправлялось вместе с формой, я хочу, чтобы идентификатор сотрудника отправлено с формой. Как я могу это сделать?

$( "#tags" ).autocomplete({
source: array
});

Это сценарий, который я использовал. И массив выглядит

  array= [{"a",1},{"b",2},{"c",3}.........]

Пожалуйста, помогите мне. Спасибо заранее.

Теги:
ruby-on-rails-4
jquery-autocomplete

3 ответа

0

DEMO

Код JS:

var data = {
    json: "{\"employee\":[{\"value\":\"A\",\"id\":\"1\"},{\"value\":\"B\",\"id\":\"2\"},{\"value\":\"C\",\"id\":\"3\"}]}"
}


$(function () { 

$('#submit').click(function(){
    alert('Employee name = '+$('#employee_name').val()+' Employee id = '+$('#employee_id').val());    
});   

    $.ajax({
        url:"/echo/json/",
        data: data,
        type: "POST",
        success:function(data) {
            console.log(data);
            var arr = data.employee;
            $("#employee_name").autocomplete({
                minLength: 0,
                source: arr,
                select: function (event, ui) {
                    $("#employee_name").val(ui.item.value);
                    $("#employee_id").val(ui.item.id);
                    return false;
                }
            });
        }
    });
});

Код HTML:

<form>
    Employee name (Type like "A" or "B" or "C")<br>
    <input id="employee_name" name="employee_name">
    <br>
    Selected Employee id (hidden field):        
    <input type="text" id="employee_id" name="employee_id" readonly>
    <br>    
    <input type="button" value="Submit" name="submit" id="submit" onclick="check_fields()">
0

Если у вас есть несколько значений в текстовом поле автозаполнения, вам необходимо сохранить его в массиве и передать его через серверную часть

var ids = [];
$('#id').autocomplete({

select: function( event, ui ) {
 ids.push( ui.item.value );
});

});

массив идентификаторов будет содержать все выбранные идентификаторы сотрудников, аналогично вам также придется удалить этот идентификатор из этого массива, если пользователь отменит выбор сотрудника из текстового поля автозаполнения

0

Попробуйте использовать JSON-объект, подобный этому

array = [
     {label: "a", value: 1},
     {label: "b", value: 2}
]

Поле назовет это текст, который пользователь увидит, и значение - id. Также вы можете использовать другие файлы, такие как category, desc, icon

Ещё вопросы

Сообщество Overcoder
Наверх
Меню