我试图插入ui.item.id
(来自控制器的ivlist.ivac_id
)
进入<input type="text" id="vac_ivac_id" name="vac_ivac_id"/>
但它没有用。
我认为我对ui做了一些错误,或者选择:function。我过去几个小时一直在谷歌上搜索自动完成功能,但无法找到错误。
下面我附上了我的源代码:
$(function () {
$('#vac_name').autocomplete({
source: function (request, response) {
$.ajax({
url: "${pageContext.request.contextPath}/searchIVac.do",
data: {
search: $("#vac_name").val()
},
dataType: "json",
type: "post",
success: function (jsonData) {
response($.map(jsonData.ivlist, function (item) {
return {
value: item.ivac_name,
label: item.ivac_name,
id: item.ivac_id
};
}));
},
select: function (event, ui) {
alert(ui.item.id);
$("#vac_ivac_id").val(ui.item.id);
},
selectFirst: false,
minLength: 2,
focus: function (event, ui) {
$('#vac_name').val(ui.item.label);
return false;
},
});
}
});
});
<table>
<tr>
<td>
<input type="text" id="vac_name" name="vac_name" />
<input type="hidden" id="vac_ivac_id" name="vac_ivac_id" value="0" />
</td>
</tr>
</table>
答案 0 :(得分:0)
我认为你没有正确关闭source / ajax调用括号/大括号。
如果您查看代码,则自动完成功能位于ajax选项内,而不是自动完成的一部分。
正确的代码必须是:
$(function () {
$('#vac_name').autocomplete({
source: function (request, response) {
$.ajax({
url: "${pageContext.request.contextPath}/searchIVac.do",
data: {
search: $("#vac_name").val()
},
dataType: "json",
type: "post",
success: function (jsonData) {
response($.map(jsonData.ivlist, function (item) {
return {
value: item.ivac_name,
label: item.ivac_name,
id: item.ivac_id
};
}));
}
}) //<--close the ajax call
}, //<--close source option
select: function (event, ui) {
alert(ui.item.id);
$("#vac_ivac_id").val(ui.item.id);
},
selectFirst: false,
minLength: 2,
focus: function (event, ui) {
$('#vac_name').val(ui.item.label);
return false;
},
});
});