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 に答える