起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6706|回复: 5

[分享] 文本输入框自动补全,智能提示

  [复制链接]

62

主题

363

帖子

1184

积分

金牌会员

Rank: 6Rank: 6

积分
1184
QQ
发表于 2016-7-21 20:19:42 | 显示全部楼层 |阅读模式
版本: 其它(帖子中说明) 小版本号:
数据库: MySQL 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
客户要求在文本输入框中输入内容后,能够智能提示补全,先看看效果

实现的方法是利用bootstrap中的typeahead可以实现智能提示补全
首先要在JS中引入
                //引入bootstrap
        require("css!$UI/system/components/bootstrap/lib/css/bootstrap").load();
        require("$UI/system/components/bootstrap/lib/js/bootstrap");
       
        //引入typeahead
        require("../js/bootstrap3-typeahead");  //bootstrap3-typeahead这个要在网上去下载



代码是这样写的
        Model.prototype.modelLoad = function(event){
                //初始化 typeahead
                this.initTypeahead();
        };
       
        Model.prototype.initTypeahead = function(){
                var self = this;
                //var localArrayData = ['beijing', 'shanghai', 'guangzhou', 'sz', 'hangzhou', 'ningbo'];
                $('.typeahead').typeahead({
               
                        source:  function (query, process) {
                    //query是输入的值
//                    $.post("@Url.Action("GetNames")", { name: query }, function (e) {
//                        if (e.success) {
//                            if (e.data.length == 0) { alert("没有查到对应的人"); return; }
//                            var array = [];
//                            $.each(e.data, function (index, ele) {
//                                name2Id[ele.name] = ele.id;//键值对保存下来。
//                                array.push(ele.name);
//                            });
//                            process(array);
//                        }
                   // });
                   var array = [];
                   var params = new biz.Request.ActionParam();
                   var mapParam = new biz.Request.MapParam();
                   mapParam.put("MLHH", query);
                   params.setMap("variables", mapParam);
                  biz.Request.sendBizRequest({
                                                "context" : self.getContext(),
                                                "action": "queryMaxMLHHAction", //这是BIZ 中写的查询action ,返回提示的值
                                                "parameters" : params,
                                                "callback": function(data) {
                                                        data.ignoreError = false;
                                                        if (data.state) {
                                                                //alert(data.response);
                                                                // 输出返回结果
                                                                //TextOut.setText(result, data.response);
                                                                if(data.response === undefined){
                                                                        array.push(query);//当没有返回值是这里最好要有值,否则会有错误提示
                                                                }else{
                                                                        array.push(data.response); //因为我只是取最大值,所以返回的是一个字符串,如果返回的是表或多个字段, 这里就要自己写代码
                                                                }
                                                                       
                                                               
                                                               
                                                        }else{
                                                                //justep.Util.hint("返回简单值为空");
                                                                array.push(query);
                                                }
                                                }
                                        });

                    process(array);

                }, //数据源
                       
                       
                        items: 8, //最多显示个数
                        updater: function (item) {
                                self.comp('mainData').setValue('fMLHH',item);
                               
                                return item; //这里一定要return,否则选中不显示,外加调用display的时候null reference错误。
                        },
               
                        afterSelect: function (item) {
                        //选择项之后的事件 ,item是当前选中的。
                                //self.comp('mainData').setValue('fMLHH',item);
                        },
                        minLength: 3,  //输入3个字符后才开发查询
                        delay: 500 //延迟时间       
               
               
                });
               
               
       
       
        };

QQ图片20160721195448.png

评分

参与人数 1威望 +10 收起 理由
不羁的风 + 10 很给力!

查看全部评分

6

主题

43

帖子

95

积分

初级会员

Rank: 2

积分
95
QQ
发表于 2016-7-22 09:15:53 | 显示全部楼层
12222
回复

使用道具 举报

1

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
QQ
发表于 2016-7-23 18:23:13 | 显示全部楼层
Good
回复

使用道具 举报

3

主题

12

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
发表于 2016-7-27 11:22:28 | 显示全部楼层
加油加油
回复

使用道具 举报

179

主题

709

帖子

2090

积分

金牌会员

QQ:1262363236

Rank: 6Rank: 6

积分
2090
QQ
发表于 2016-9-3 09:36:19 | 显示全部楼层
QQ:1262363236
回复

使用道具 举报

27

主题

54

帖子

245

积分

中级会员

Rank: 3Rank: 3

积分
245
QQ
发表于 2017-6-22 11:25:28 | 显示全部楼层
我这边出现了问题,引入那个js, 出错了。

PY19Z9FMQV`N_AY0]SCED6L.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-22 11:58 , Processed in 0.067150 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表