私はjQueryUIオートコンプリートを使用しており、これまで何度も使用していましたが、今ではより複雑な要件があります。
JSONデータソースを使用して、さまざまな量のオートコンプリートフィールドを設定し、$()。eachを使用してこれらを設定したいと考えています。問題はデータにあるようです。AJAX呼び出しのプロパティは常にデフォルトで最終的なオートコンプリート設定の値になっています。
$('[id$=CheckMethod]').each(function(index) {
if ($(this).val() === 'List') {
fieldToSetup = ($(this).attr('id').replace('txt',''));
fieldToSetup = left(fieldToSetup,(fieldToSetup.length - 11));
alert(fieldToSetup);
$('#txt' + fieldToSetup + 'CodeRoom' + escape(inRoomID)).autocomplete({
source: function (request, response) {
var src,
arrayData;
src = 'AJAXCheckCode.asp?actionType=List&GUID=' + $('#txtGUID').val();
$.ajax({
url: src,
datatype: 'json',
data: 'inCode=' + request.term + '&inType=' + $(this).attr('id'),
success: function (outData) {
arrayData = $.parseJSON(outData);
response($.map(arrayData, function (item) {
var theLabel = (item.Notes.length > 0) ? item.TheCode + ' - ' + item.Notes : item.TheCode;
return {
label: theLabel,
value: item.TheCode
};
}));
}
});
},
minLength: 1,
open: function (event, ui) {
$(".ui-slider-handle ui-state-default ui-corner-all").hide();
$(".ui-autocomplete.ui-menu").width(400);
$(".ui-autocomplete.ui-menu").css('z-index', 1000);
},
close: function (event, ui) {
$(".ui-slider-handle ui-state-default ui-corner-all").show();
},
focus: function (event, ui) {
return false;
},
select: function (event, ui) {},
search: function (event, ui) {
}
});
}
});//each CheckMethod
このコードは、最後のフィールド設定のinTypeパラメーターを使用して最初のオートコンプリートフィールドになります。
最大4x6のオートコンプリートファイルをコーディングせず、すべてのフィールドを設定する1つの関数を作成しようとしていますが、これは可能ですか?
したがって、最初のオートコンプリートのAJAXURLは次のようになります http://foo.com/AJAXCheckCode.asp?actionType=List&GUID={838138D6-A329-40F1-924B-58965842ECF8}&inCode = es&inType = A3&_ = 1335875408670
「inType」が実際にはA2であり、外部の$ .each()の最後の項目であるA3ではない場合
これが理にかなっていることを願っています!