Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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 UI自动完成格式选择_Jquery_Jquery Ui - Fatal编程技术网

Jquery UI自动完成格式选择

Jquery UI自动完成格式选择,jquery,jquery-ui,Jquery,Jquery Ui,如何设置自动完成小部件输入到文本框的值的格式 代码如下: $(function() { var persons = [ { "salutation": "Mr." "name": "John Smith" }, { "salutation": "Ms." "name": "Mary Doe" }, {

如何设置自动完成小部件输入到文本框的值的格式

代码如下:

$(function() {
    var persons = [
        {
            "salutation": "Mr."
            "name": "John Smith"
        },
        {
            "salutation": "Ms."
            "name": "Mary Doe"
        },
        {
            "salutation": "Mrs."
            "name": "Ana Smith"
        }
    ];

    $("input[name=text]").autocomplete({
        source: persons
    }).data("autocomplete")._renderItem = function(ul, item) {
        return $("<li>").data("item.autocomplete", item).append("<a>" + item.name +  "</a>").appendTo(ul);
    };
});
触发select事件后,如何将对象的称呼和名称属性添加到文本框中

谢谢

正如您在中所看到的,_renderItem的item参数包含当前对象的属性,因此您可以如下方式访问它们:

item.saltation和item.name

并将它们设置为输入值

下面是官方示例中的一小部分代码:

var projects = [
    {
        value: "jquery",
        label: "jQuery",
        desc: "the write less, do more, JavaScript library",
        icon: "jquery_32x32.png"
    },
    {
        value: "jquery-ui",
        label: "jQuery UI",
        desc: "the official user interface library for jQuery",
        icon: "jqueryui_32x32.png"
    }
];


$( "#project" ).autocomplete({
    source: projects,
    select: function( event, ui ) {
        $( "#project" ).val( ui.item.label );
        $( "#project-id" ).val( ui.item.value );
        $( "#project-description" ).html( ui.item.desc );
        $( "#project-icon" ).attr( "src", "images/" + ui.item.icon );
        return false;
    }
    // ...
})
// ...
.autocomplete( "instance" )._renderItem = function( ul, item ) {
    return $( "<li>" )
        .append( "<a>" + item.label + "<br>" + item.desc + "</a>" )
        .appendTo( ul );
}; 
更新

我已经实现了您想要的解决方案。请在下面查看

$function{ 个人变量=[{ 称呼:先生。, 标签:约翰·史密斯 }, { 称呼:女士。, 标签:玛丽·多伊 }, { 敬礼:夫人。, 标签:安娜·史密斯 }]; $input[type=text]。自动完成{ 最小长度:0, 资料来源:个人, 焦点:functionevent,ui{ $this.valui.item.label; 返回false; }, 选择:functionevent,ui{ $this.valui.item.saltation+“”+ui.item.label; 返回false; } } .dataautocomplete.\u renderItem=functional,项{ 返回$ .dataitem.autocomplete,项目 .append+item.saltation++item.label+ .appendToul; }; };
谢谢你的回复。但是,这只会在下拉列表中返回称呼和名称,一旦我选择了一个条目,文本框中只会输入名称