如何使用json数据在jQuery自动完成控件中设置key\value?
如何使用此json数据作为jquery自动完成的数据源如何使用json数据在jQuery自动完成控件中设置key\value?,jquery,asp.net,jquery-ui,autocomplete,Jquery,Asp.net,Jquery Ui,Autocomplete,如何使用此json数据作为jquery自动完成的数据源 [{"uid":"123","UserName":"xxx"},{"uid":"124","UserName":"yyy"}] <script src="jquery-1.7.1.min.js" type="text/javascript"></script> <script src="jquery.ui.core.js" type="text/javascript"></script>
[{"uid":"123","UserName":"xxx"},{"uid":"124","UserName":"yyy"}]
<script src="jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="jquery.ui.core.js" type="text/javascript"></script>
<script src="jquery.ui.position.js" type="text/javascript"></script>
<script src="jquery.ui.widget.js" type="text/javascript"></script>
<script src="jquery.ui.autocomplete.js" type="text/javascript"></script>
<input name="Txt1" type="text" id="Txt1">
<script language="javascript" type="text/javascript">
$("#Txt1").autocomplete(
{
source:[{"uid":"123","UserName":"xxx"},{"uid":"124","UserName":"yyy"}]
}
)
</script>
[{“uid”:“123”,“用户名”:“xxx”},{“uid”:“124”,“用户名”:“yyy”}]
$(“#Txt1”).autocomplete(
{
来源:[{“uid”:“123”,“用户名”:“xxx”},{“uid”:“124”,“用户名”:“yyy”}]
}
)
非常简单
$('#Txt1').autocomplete({source:'URL to your JSON file/script'})代码>
如果你的代码真的很奇怪,你想添加json作为一个字符串使用
$('#Txt1').autocomplete({source:$.parseJSON(您的字符串)})代码>非常简单
$('#Txt1').autocomplete({source:'URL to your JSON file/script'})代码>
如果你的代码真的很奇怪,你想添加json作为一个字符串使用
$('#Txt1').autocomplete({source:$.parseJSON(您的字符串)})代码>我发现自定义返回值的最佳实践是创建解析函数。这允许您对返回的JSON执行所需操作。在这个示例代码中,我没有提到ajax调用,但是如果需要,我也可以添加它。jQueryUIAutoComplete查找标签和值实体。你可以在你认为合适的时候把它们放进去,如果需要的话,甚至可以做一些定制的事情
var myStuff = [{
"uid": "123",
"UserName": "xxx"},
{
"uid": "124",
"UserName": "yyy"}];
function imAutocompleteJSONParse(data) {
var rows = [];
var rowData = null;
var dataLength = data.length;
for (var i = 0; i < dataLength; i++) {
rowData = data[i];
rows[i] = {
label: rowData.UserName,
value: rowData.UserName
};
}
return rows;
}
$("#Txt1").autocomplete({
source: function(request, response) {
var rows = imAutocompleteJSONParse(myStuff);
return response(rows);
},
minLength: 2
});
var myStuff=[{
“uid”:“123”,
“用户名”:“xxx”},
{
“uid”:“124”,
“用户名”:“yyy”}];
函数imautompletejsonparse(数据){
var行=[];
var rowData=null;
var dataLength=data.length;
对于(变量i=0;i
为了清晰起见,我将其放在一个提琴页面中,以便您可以看到它的工作原理:
现在,由于我怀疑您想对结果进行一些自定义/不同的操作,我创建了一个关于如何使用自定义值的自定义示例:
不同之处在于我更改了parse函数并添加了一个新的autocomplete选项
var myStuff = [{
"uid": "123",
"UserName": "xxx"},
{
"uid": "124",
"UserName": "yyy"}];
function imAutocompleteJSONParse(data) {
var rows = [];
var rowData = null;
var dataLength = data.length;
for (var i = 0; i < dataLength; i++) {
rowData = data[i];
rows[i] = {
uid: rowData.uid,
UserName: rowData.UserName,
label: rowData.UserName,
value: rowData.uid
};
}
return rows;
}
$("#Txt1").autocomplete({
source: function(request, response) {
var rows = imAutocompleteJSONParse(myStuff);
return response(rows);
},
select: function(event, ui) {
var hasValue = (ui.item.value != undefined && ui.item.value != "" && ui.item.value != null);
if (hasValue) {
var focusedElement = $(this);
focusedElement.val(ui.item.label);
$('#labelResult').text(ui.item.label);
$('#valueResult').text(ui.item.label);
$('#customResult').text(ui.item.uid + ":" + ui.item.UserName);
return false;
}
else {
return false;
}
},
minLength: 2
});
var myStuff=[{
“uid”:“123”,
“用户名”:“xxx”},
{
“uid”:“124”,
“用户名”:“yyy”}];
函数imautompletejsonparse(数据){
var行=[];
var rowData=null;
var dataLength=data.length;
对于(变量i=0;i
我发现自定义返回值的最佳实践是创建解析函数。这允许您对返回的JSON执行所需操作。在这个示例代码中,我没有提到ajax调用,但是如果需要,我也可以添加它。jQueryUIAutoComplete查找标签和值实体。你可以在你认为合适的时候把它们放进去,如果需要的话,甚至可以做一些定制的事情
var myStuff = [{
"uid": "123",
"UserName": "xxx"},
{
"uid": "124",
"UserName": "yyy"}];
function imAutocompleteJSONParse(data) {
var rows = [];
var rowData = null;
var dataLength = data.length;
for (var i = 0; i < dataLength; i++) {
rowData = data[i];
rows[i] = {
label: rowData.UserName,
value: rowData.UserName
};
}
return rows;
}
$("#Txt1").autocomplete({
source: function(request, response) {
var rows = imAutocompleteJSONParse(myStuff);
return response(rows);
},
minLength: 2
});
var myStuff=[{
“uid”:“123”,
“用户名”:“xxx”},
{
“uid”:“124”,
“用户名”:“yyy”}];
函数imautompletejsonparse(数据){
var行=[];
var rowData=null;
var dataLength=data.length;
对于(变量i=0;i
为了清晰起见,我将其放在一个提琴页面中,以便您可以看到它的工作原理:
现在,由于我怀疑您想对结果进行一些自定义/不同的操作,我创建了一个关于如何使用自定义值的自定义示例:
不同之处在于我更改了parse函数并添加了一个新的autocomplete选项
var myStuff = [{
"uid": "123",
"UserName": "xxx"},
{
"uid": "124",
"UserName": "yyy"}];
function imAutocompleteJSONParse(data) {
var rows = [];
var rowData = null;
var dataLength = data.length;
for (var i = 0; i < dataLength; i++) {
rowData = data[i];
rows[i] = {
uid: rowData.uid,
UserName: rowData.UserName,
label: rowData.UserName,
value: rowData.uid
};
}
return rows;
}
$("#Txt1").autocomplete({
source: function(request, response) {
var rows = imAutocompleteJSONParse(myStuff);
return response(rows);
},
select: function(event, ui) {
var hasValue = (ui.item.value != undefined && ui.item.value != "" && ui.item.value != null);
if (hasValue) {
var focusedElement = $(this);
focusedElement.val(ui.item.label);
$('#labelResult').text(ui.item.label);
$('#valueResult').text(ui.item.label);
$('#customResult').text(ui.item.uid + ":" + ui.item.UserName);
return false;
}
else {
return false;
}
},
minLength: 2
});
var myStuff=[{
“uid”:“123”,
“用户名”:“xxx”},
{
“uid”:“124”,
“用户名”:“yyy”}];
函数imautompletejsonparse(数据){
var行=[];
var rowData=null;
var dataLength=data.length;
对于(变量i=0;i