Раскрывающийся ключ JQuery - PullRequest
       8

Раскрывающийся ключ JQuery

0 голосов
/ 25 ноября 2011

Я нашел этот пример в сети, и он был прекрасно, но я хотел бы знать, как сохранить (скрытый) идентификатор сотрудника, чтобы его можно было использовать позже на стороне сервера.

Спасибо

<script type="text/javascript">
    $(function() {
        $(".tb").autocomplete({
            source: function(request, response) {
                $.ajax({
                    url: "EmployeeList.asmx/FetchEmailList",
                    data: "{ 'mail': '" + request.term + "' }",
                    dataType: "json",
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    dataFilter: function(data) { return data; },
                    success: function(data) {
                        response($.map(data.d, function(item) {
                            return {
                                value: item.Email
                            }
                        }))
                    },
                    error: function(XMLHttpRequest, textStatus, errorThrown) {
                        alert(textStatus);
                    }
                });
            },
            minLength: 1
        });
    });
</script>

1 Ответ

0 голосов
/ 25 ноября 2011

У автозаполнения есть событие изменения, которое запускается, когда поле размыто, если значение изменилось. Вам необходимо привязать обработчик события к этому событию, а затем установить скрытое поле в этом обработчике события.

Итак

 $(".tb").autocomplete({
            source: function(request, response) {
                $.ajax({
                    url: "EmployeeList.asmx/FetchEmailList",
                    data: "{ 'mail': '" + request.term + "' }",
                    dataType: "json",
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    dataFilter: function(data) { return data; },
                    success: function(data) {
                        response($.map(data.d, function(item) {
                            return {
                                value: item.Email
                            }
                        }))
                    },
                    error: function(XMLHttpRequest, textStatus, errorThrown) {
                        alert(textStatus);
                    }
                });
            },
            minLength: 1,
            change : function (event,ui) {
                     $("#hdnEmpId").val(ui.item.value);
            }
        });

Вам нужно будет выяснить, как вы хотите реализовать обработчик события изменения. Вы можете прочитать больше об этом на http://jqueryui.com/demos/autocomplete/#event-change

Надеюсь, это поможет!

...