내 현재 코드는 다음과 같습니다.
$(document).ready(function () {
$('#txtSearchForTrainingFacility').autocomplete({
select: function (event, ui) {
searchCallback(event, ui);
}, // select
source: function (request, response) {
$.ajax({
url: 'http://localhost:49795/Ajax/Search/' + $('#txtSearchForTrainingFacility').val(),
dataType: 'json',
data: {},
success: function (data) {
response( $.map( data, function( item ) {
return {
label: item.Name,
value: item.Value,
id: item.ID
} // return object
})) // response
} // success
}) // ajax
} // source function
}); // autocomplete
}); // document.ready
당신은에서 볼 수있는 ajax.success
이벤트 기능을 내가 함께 객체를 반환 매핑하고 label
, value
및 id
특성 - 아직 autocomplete.select
메소드의 ui.item
매개 변수는 포함 label
하고 value
.
내가 무엇을 잘못하고 있지? 의 개체 id
에 속성을 표시 하려면 어떻게 해야합니까?autocomplete.select
ui.item
아약스 호출 결과 각 소자의 특성을 포함하는 객체와 JSON 배열이고
Name
,Value
, 및ID
.
참고 ajax 호출을 고정 배열 [{id: 1, label: 'bob', value: 'creep'}, {id: 2, label: 'joe', value: 'friend'}]
로 바꾸면 id
속성이 select 이벤트에서 잘 나오는 것처럼 보입니다.
따르면 JQuery와 UI 1.8.20 소스 항목 객체가 직접 저장 <li>
하여 jQuery를 data()
. 객체가 response
콜백과 객체의 저장 사이에서 변경 될 수있는 jQuery UI의 유일한 위치 는 private 함수data
에서 와 _normalize
같습니다 . 전달하는 객체가 문자열 인 경우 레이블과 값만 명시 적으로 유지하지만, 그렇지 않으면 _normalize
함수 도 객체를 그대로 유지해야합니다.
이것과 정적 배열을 전달하면 문제가 해결된다는 사실은 귀하의 문제가 귀하가 게시 한 JavaScript 스 니펫이 아니라 서버에서 오는 JSON에 있다고 믿게합니다. 코드는 ID
ASP.NET 서버 의 기본 필드를 가정 합니다. 해당 필드 이름을 기본값으로 사용하고 있는지 다시 확인하는 것이 좋습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다