0

友達オートコンプリート用の新しいjsファイルを作成しました。「receiverAutocompleteData = data.autcompleteData;」という1行を除いて、すべて正常に機能しています。右側の値は左側に割り当てられません。

var ArrayAutocomplete = [];
var receivingAutocompleteData ;
function AutoComplete1(txtBoxName, idField, fieldName) {
debugger;
ArrayAutocomplete = [];

var selectedReqType = $("#" + txtBoxName).val();

$("#" + txtBoxName).unautocomplete();
$("#" + txtBoxName).val("");

$("#" + txtBoxName).val("Loading...........");
$("#" + txtBoxName).attr("disabled", true);


// var rea=  "<%= Url.RouteUrl(new { controller = "Request", action =   "AutoSelectionDataForRequestType"}) %>";
var rea = getURL(fieldName);
$.post(rea, {}, function (data) {
    debugger;
    receivingAutocompleteData = data.autcompleteData;
    jQuery.each(receivingAutocompleteData, function (i, val) {
        if (val.Name != "")
            ArrayAutocomplete.push(val.Name + '|' + val.ID);
    });
    ArrayAutocomplete.sort();

    //   alert(ArrayAutocomplete.length);
    //  alert(ArrayAutocomplete);
    $("#" + txtBoxName).autocomplete(ArrayAutocomplete, {

        minChars: 0,
        max: ArrayAutocomplete.length,
        autoFill: true,
        mustMatch: true,
        matchContains: false,
        multipleSeparator: ',-',
        scrollHeight: 220,

        formatItem: function (data, index, max) {
            return data[0];
        },
        formatMatch: function (data, index, max) {
            return data[0];
        }, formatResult: function (data, index, max) {
            return data[0];
        }
    }).result(function (event, data, formatted) {
        if (data)
            $("#" + idField).val(data[1]);
        else
            $("#" + idField).val('-1');
    });
    $("#" + txtBoxName).val("");
    $("#" + txtBoxName).attr("disabled", false);
    $("#" + txtBoxName).Watermark("--Select--");

    if (selectedReqType != '')
        $("#" + txtBoxName).val(selectedReqType);
   });

}

4

2 に答える 2

0

jQueryはcontent-typeヘッダーを使用して、返されるデータのタイプを判別します。ほとんどのサーバーは送信しないためapplication/json、データ型として「json」を指定する必要があります(の4番目のパラメーター$.post

また、タイプミスがあるかもしれません

私はそれがすべきだと思います

data.autocompleteData

それ以外の

data.autcompleteData
于 2012-07-03T06:51:29.970 に答える
0

dataですか?

receivingAutocompleteData = data.autcompleteData;おそらく、 ;でタイプミスをしたばかりです。適切なフィールド名は「data.autocompleteData ;」です。

于 2012-07-03T06:51:57.453 に答える