微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 自动完成在自动完成窗口中显示相关数据

我有3个输入字段,1个用于数据类型,其他2个是相关的.
当我按下数据类型字段中的按钮时,我想显示像这个

desired

自动完成窗口

而不是这个

undesired

选择之后应该看起来像这样

result

HTML

JS

$(document).on('focus','.type',function(){
type = $(this).data('type');
if(type =='vehicle' )autoTypeNo = 1;   
$(this).autocomplete({
    source: function( request,response ) {
        $.ajax({
            url : 'autocomplete.PHP',dataType: "json",method: 'post',data: {
               name_startsWith: request.term,type: type
            },success: function( data ) {
                 response( $.map( data,function( item ) {
                    var code = item.split("|");
                    return {
                        label: code[autoTypeNo],value: code[autoTypeNo],data : item
                    }
                }));
            }
        });
    },autoFocus: true,minLength: 0,select: function( event,ui ) {
        var names = ui.item.data.split("|");                       
        id_arr = $(this).attr('id');
        id = id_arr.split("_");
        $('#no_'+id[1]).val(names[0]);
        $('#vehicle_'+id[1]).val(names[1]);
        $('#type_'+id[1]).val(names[2]);
    }              
 });
});
最佳答案
您需要更改autocomplete.PHP然后返回所有3个值,您可以在json数组中轻松执行此操作http://php.net/manual/en/function.json-encode.php然后读取jquery脚本中的值.

这是您更新的JS脚本

$(document).on('focus',function( item ) {
                    //var code = item.split("|");
                    return {
                        label: item.no + '-' + item.vehicle + '-' + item.type,value: item.vehicle,ui ) {
        //var names = ui.item.data.split("|");                       
        id_arr = $(this).attr('id');
        id = id_arr.split("_");
        $('#no_'+id[1]).val(ui.item.data.no);
        $('#vehicle_'+id[1]).val(ui.item.data.vehicle);
        $('#type_'+id[1]).val(ui.item.data.type);
    }              
 });
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


页面搜索关键词突出 // 页面搜索关键词突出 $(function () { $(".list_r").find('span').css({ // 每次搜索开始,先把所有字体颜色恢复初始状态 'color': "#838792"
jQuery实时显示日期、时间 html: <span id="time"></span> js: <script src="Js/jquery.min.js"></script> <%--引用jQuery
jQuery 添加水印 <script src="../../../../AJs/jquery.min.js"></script> <script type="text/javascript"> $(document).re
中文:Sys.WebForms.PageRequestManagerParserErrorException:无法分析从服务器收到的消息,之所以出现此错误,常见的原因是:通过调用Response.Write()修改相应时,将启用响应筛选器、HttpModules或服务器追踪。详细信息:分析附近的“输
1. 用Response.Write方法 代码如下: Response.Write("<script type='text/javascript'>alert("XXX");</script>"); 此方只能调用内部函数
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按钮调用OnClientClick事件,添加dom元素及样式。 2.当Click中逻辑执行完后,在Click中调用js方法删除掉刚才添加的dom元素。 1 <%@ Page Language="C#" Auto
.Net后台调用js,提示、关闭当前窗体、打开新窗体 Response.Write("<script>window.alert('支付成功!');window.open('/JkCommerce/" + href + "',&
思路: 1.ajax请求后台方法获取数据。 2.通过jquery将请求到的数据显示在页面上。 前台 <div class="sc_con" id="bbsearch"> <input type="text" class=&
<html> <title></title> <head> <meta charset="utf-8"> <style type="text/css"> .divone{width:100
jQuery表单验证提交:前台验证一(图文+视频)