我想使用自动完成小部件允许某人通过在文本框中输入员工姓名来选择员工,但我希望表单发布员工的ID,而不是员工姓名。我提供了数据,即员工姓名作为来源。 .js中的标签和值与我提供的源代码相同,我怎样才能将员工姓名和ID分开。
$("#txtEmployeeName").autocomplete({
var suggestions = [] ;
//define callback to format results
source: function(req, add){
ajax call...
on success: function( data )
{
suggestions = data.split('|');
add(suggestions);
}
select: function(e, ui) {
//create formatted friend
var friend = ui.item.value,
span = $("<span>").text(friend)
$("#"+ $(this).attr("id")).val(span);
}
});
答案 0 :(得分:8)
您需要将json对象传递给源属性。
然后你的ui.item就是对象,Id,value,你想要的一切。
$(function() {
var students = [{id: 1322,label: "student 1"},{id: 2,label: "Student 2"}];
$( "#search-student" ).autocomplete({
source: students,
minLength: 2,
select: function( event, ui ) {
window.location.href="/?studentId=" + ui.item.id;
}
});
});
查看jQuery的getJSON:http://api.jquery.com/jQuery.getJSON/以通过ajax获取json。