get-request
을 서버로 전송하는 간단한 양식이 있습니다.자동 완성 중에 jquery가 작동하지 않는 숨겨진 필드에 값을 설정하십시오.
<form id="form0" method="get">
<input id="searchTerm" type="hidden" name="searchTerm">
<input type="search" id="userSearchTerm" />
<input type="submit" value="submit" />
</form>
는 그리고 서버에서 JSON 데이터를 얻을 수 JQuery와 - UI auto-complete
을 사용하고 예, 그것을 잘 작동합니다.
<script type="text/javascript">
$(document).ready(function() {
$("#userSearchTerm").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Home/AutoComplete",
type: "POST",
dataType: "json",
data: { term: request.term },
success: function (data) {
alert("successfully got the data");
response($.map(data, function (item) {
return { name: item.name, value: item.age };
}))
}
})
},
select: function (e, ui) {
alert(ui.item.name);
$('#searchTerm').val(ui.item.name);
$("#form0").submit();
}
});
return false;
})
내가 좋아하는 경고 메시지뿐만 아니라 "
항목 이름" "
성공적으로 데이터를 얻었다"얻는다. Google 크롬 아래의
Network
탭에서도 확인 -> json 응답이 있습니다.
문제는 양식을 제출할 수 없다는 것입니다. 회선을 삭제하면 $('#searchTerm').val(ui.item.name);
양식이 제출되고 모든 것이 잘됩니다.
아무도 올바른 방향으로 나를 가리킬 수 있습니까? 왜이 간단한 자바 스크립트가 실행되지 않습니다? ui.item.name 같은 ui.item.value에 교체
sort2는 어디에 정의되어 있습니까? 아니면 어디에서 오는가? –
@Jatinpatil : 지적 해 주셔서 고맙습니다. 오타였습니다. 그러나 여전히 같은 오류입니다. –
evrything은 괜찮아 보입니다. 샘플 json으로 [fiddle] (http://jsfiddle.net)을 만들 수 있습니까? – Unknown