Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用json数据在jQuery自动完成控件中设置key\value?_Jquery_Asp.net_Jquery Ui_Autocomplete - Fatal编程技术网

如何使用json数据在jQuery自动完成控件中设置key\value?

如何使用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>

如何使用此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>
<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