나는 자동 완성 세트와 완벽하게 잘 작동과 텍스트 상자가 있습니다. 그러나 나는 matchSubset 기능에의 jQuery 자동 완성 : matchSubset 옵션 문제
if (!options.matchCase)
s = s.toLowerCase();
var i = s.indexOf(sub);
에서이 autocomplete.js 파일의 오류를 던지는 matchSubset 옵션을 사용하려고 할 때. 'Object does not support this property or method'오류가 발생합니다. 아래는 내 자동 완성 코드입니다.
$('#txtUsers')
.autocomplete("AjaxHandler.asmx/GetUserData", {
width: 320,
max: 10,
minChars: 3,
matchSubset: true,
formatItem: function(data, i, n, value) {
return value.FullName + " (" + value.DepartmentName + ")";
},
parse: function(data) {
var items = eval($(data).text());
return $.map(items, function(row, i) {
return {
data: row,
value: row,
result: row
}
});
}
})
.result(function(event, data, formatted, text) {
if (data) {
$(this).val(data[0].FullName);
}
});
처음 3자를 입력하면 정상적으로 작동합니다. 그러나 내가 4 번째 문자를 입력하면 위에서 언급 한 오류가 발생합니다. 데이터를 파싱 할 때 실수를 저지르고 있습니까? 내 웹 서비스가 랩된 데이터를 제공하기 때문에 구문 분석 함수에서 데이터를 평가해야했습니다. matchSubset 옵션을 제거하면 코드가 제대로 작동하지만 매번 서버를 쿼리합니다. 어떤 도움이 필요합니까?
업데이트 : 나는 문제가 내 구문 분석 기능을 생각합니다. matchSubset 기능에 위의 코드에서, '들'- 나를 위해하면 FullName 같은 여러 값을 포함하는 객체가 어떻게 따라 내 구문 분석 기능에 DepartmentName 변경 등의 문자열 값을 것으로 예상된다?
그 라인'VAR 항목 = 평가 ($ (데이터)는 .text는());'당신이 당신 앞에 data'이 오류가'에 무엇을 확인하려고 했 좀 비린내가 : 보이는? –
글쎄 $ (데이터)는 .text()가 래핑 된 JSON을 반환 (이 것 때문에 오류를주는 함수의's'는 구문 분석 배열의-객체의 결과에서 '값'에 해당) 끈. 그것이 내가 객체를 얻기 위해 평가해야했던 이유입니다. – Ashish