Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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
为什么不是';使用jQuery自动完成插件调用我的自定义formatResult函数吗?_Jquery_Autocomplete - Fatal编程技术网

为什么不是';使用jQuery自动完成插件调用我的自定义formatResult函数吗?

为什么不是';使用jQuery自动完成插件调用我的自定义formatResult函数吗?,jquery,autocomplete,Jquery,Autocomplete,我正在使用autocompletejquery插件()调用返回json的服务。我的插件使用json结果,一切正常,execpt我的自定义formatResult函数从未被调用。我想使用该函数来捕获用户从结果列表中选择,以填充页面上的各种其他字段 $(document).ready(function() { $("#vendorname").autocomplete("/Vendor/Search", { dataType: 'json', parse: f

我正在使用autocompletejquery插件()调用返回json的服务。我的插件使用json结果,一切正常,execpt我的自定义formatResult函数从未被调用。我想使用该函数来捕获用户从结果列表中选择,以填充页面上的各种其他字段

$(document).ready(function() {
    $("#vendorname").autocomplete("/Vendor/Search", {
        dataType: 'json',
        parse: function(data) {
            var rows = new Array();
            for (var i = 0; i < data.length; i++) {
                rows[i] = { data: data[i], value: data[i].Name, result: data[i].Name };
            }
            return rows;
        },
        formatItem: function(row, i, n) {
            return row.RepName + ' (' + row.VendorId + ')';
        },
        formatResult: function(row, i, n) {
            return '(formatResult) ' + row.Name;
        },
        width: 200,
        mustMatch: false,
        scroll: true,
        scrollHeight: 300
    });
});
所以

1) 为什么格式化结果从未命中


2) 一旦用户从结果中选择了一个项目,是否有更好的方法来获取对象属性?

格式结果只会更改文本框中显示的内容。如果要截取对输入值的更改,请执行以下操作

 $("#vendorname").result(function(event, data, formatted){
   //do something
  });

这里需要注意的是,
formatResult
formatItem
在jQuery的核心自动完成中似乎不再有效/存在。相反,我使用了和我自己的代码的组合。这是我的获奖代码。此特定函数负责值和标签,但您可以放置自己的任何函数:

$(document).ready(function(){
    $('#TradeFromUserId').autocomplete({
        minLength: 3,
        source: '/my.json',
        select: function(event, ui {
            var selectedObj = ui.item;
            $('input#TradeFromUserId').val(selectedObj.label);
            $('input#TradeFromUserIdHidden').val(selectedObj.value);
            return false;
        focus: function(event, ui){
            var selectedObj = ui.item;
            $('input#TradeFromUserId').val(selectedObj.label);
            $('input#TradeFromUserIdHidden').val(selectedObj.value);
            return false;
        }
    });
});
$(document).ready(function(){
    $('#TradeFromUserId').autocomplete({
        minLength: 3,
        source: '/my.json',
        select: function(event, ui {
            var selectedObj = ui.item;
            $('input#TradeFromUserId').val(selectedObj.label);
            $('input#TradeFromUserIdHidden').val(selectedObj.value);
            return false;
        focus: function(event, ui){
            var selectedObj = ui.item;
            $('input#TradeFromUserId').val(selectedObj.label);
            $('input#TradeFromUserIdHidden').val(selectedObj.value);
            return false;
        }
    });
});