0
$(function ()
{

    $(".tb").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "StudentName.asmx/FetchNameList",
                data: "{ 'FirstName': '" + 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.Name
                        }
                    }))
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert(textStatus);
                }
            });
        },
        minLength: 1
    });
});

我想从上面获取 id 字段,我创建了一个新文本框并插入了 $('.id').val(item.ID); 但它不会返回我从自动完成文本框中选择的相同 id 字段。我怎样才能得到那个ID?

我得到的 JSON 数据是这样的。

{"d":[{"_ type":"Student","ID":1,"Name":"Sagar Khyaju"},{ "_type":"Student" ,"ID":2,"Name" :"Sagar Khyaju"},{"__type":"Student","ID":4,"Name":"Sagar Lkkk"}]}

4

2 回答 2

1

我找到了解决方案,以防有人需要。干杯! :)

 $(function () {
        $(".tb").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "StudentName.asmx/FetchNameList",
                    data: "{ 'FirstName': '" + 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.Name, ID: item.ID
                            }
                        }))
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert(textStatus);
                    }
                });
            },
            select: function (event, ui) {
                $(this).val(ui.item.value);
                return false;
            },
            change: function (event, ui) {
                $(".student_id").val(ui.item.ID);
                return false;
            }
        });
    });
于 2012-05-03T10:23:10.557 回答
0

将 jsondata 存储在变量中,您可以从结果变量中进行迭代

var result= eval("(" + jsondata + ")");

我猜你正在使用自动完成

请看下面的链接

自动完成

于 2012-04-23T05:55:29.007 回答