jQuery MiniUI

标题: AutoComplete 能设置setData(arr)吗,一定要url才会有数据 [打印本页]

作者: pj_style    时间: 2013-8-27 11:31:59     标题: AutoComplete 能设置setData(arr)吗,一定要url才会有数据

AutoComplete 能设置setData(arr)吗,一定要url才会有数据
作者: factory    时间: 2013-8-27 11:41:35

AutoComplete 的目的是后台去加载数据的

如果你是静态的数据,还不如直接用combobox,combobox也可以根据录入来显示对应下拉数据的

http://www.miniui.com/demo/#src=combobox/combobox.html
作者: pj_style    时间: 2013-8-27 12:06:44

factory 发表于 2013-8-27 11:41
AutoComplete 的目的是后台去加载数据的

如果你是静态的数据,还不如直接用combobox,combobox也可以根据 ...

我是要自动匹配这种效果,类似百度
作者: lost    时间: 2013-8-27 14:15:16

pj_style 发表于 2013-8-27 12:06
我是要自动匹配这种效果,类似百度

combobox也自动匹配的。
作者: pj_style    时间: 2013-8-27 14:20:55

lost 发表于 2013-8-27 14:15
combobox也自动匹配的。

怎样重写这个控件匹配的方法,现在我要在客户端将数据匹配。
作者: factory    时间: 2013-8-27 14:52:42

pj_style 发表于 2013-8-27 14:20
怎样重写这个控件匹配的方法,现在我要在客户端将数据匹配。

可以试试监听onkeyup事件

var t = cb.getText();
然后根据t,去你的数据里面匹配出想要的数据集合data
combobox.setData(data)
作者: pj_style    时间: 2013-8-27 15:39:09

factory 发表于 2013-8-27 14:52
可以试试监听onkeyup事件

var t = cb.getText();

这样下拉框是要弹出显示,才有效果吧!
作者: factory    时间: 2013-8-27 16:23:56

pj_style 发表于 2013-8-27 15:39
这样下拉框是要弹出显示,才有效果吧!

allowInput之后,只要输入,自动会把下拉框显示出来
作者: pj_style    时间: 2013-8-27 16:49:05

factory 发表于 2013-8-27 14:52
可以试试监听onkeyup事件

var t = cb.getText();

我刚试了,我把过滤后的数据重新setData()后,文本框清空了,什么情况,下拉 列表也没有了值!
作者: factory    时间: 2013-8-27 17:18:11

pj_style 发表于 2013-8-27 16:49
我刚试了,我把过滤后的数据重新setData()后,文本框清空了,什么情况,下拉 列表也没有了值! ...

setData()之后自然会帮你把文本框清空的,因为连下拉数据都变了。
下拉列表没值,肯定是你自己setData()的数据有问题
作者: pj_style    时间: 2013-8-27 17:30:32

factory 发表于 2013-8-27 16:23
allowInput之后,只要输入,自动会把下拉框显示出来

setData后,前面输入的值也会被去掉吗?
作者: pj_style    时间: 2013-8-27 17:36:04

factory 发表于 2013-8-27 17:18
setData()之后自然会帮你把文本框清空的,因为连下拉数据都变了。
下拉列表没值,肯定是你自己setData() ...

你们这个控件真的有点问题,  我用的keyUP时间,文本框已输入值就给清掉。
        //监听输入的数据
       function  onkeyup(e){
        var inputCmd=mini.get("cmd_name").getText();
        var str=inputCmd.split(" ");
        if(str.length>0){
         inputCmd=str[0];
        }
        
        var newArr=[];
        var obj={};
        if(handleCmdArr.length>0){
                for(var i=0;i<handleCmdArr.length;i++){
                //根据匹配的数值重组集合数据
                var items=handleCmdArr.CMD_NAME;
                      if(items.toLowerCase().indexOf(inputCmd.toLowerCase())!=-1){
                      //  newArr.push(handleCmdArr);
                     }
                }
        }
        var data=mini.get("cmd_name").getData();
        mini.get("cmd_name").setData(data);
      
       }
        
作者: pj_style    时间: 2013-8-27 17:54:02

pj_style 发表于 2013-8-27 17:36
你们这个控件真的有点问题,  我用的keyUP时间,文本框已输入值就给清掉。
        //监听输入的数据
    ...

<div class="mini-combobox" style="width: 550px;" id="cmd_name"
                                                name="cmd_name" popupWidth="100%"
                                                textField="CMD_NAME" valueField="CMD_NAME"  allowInput="true" onKeyUp="onkeyup"
                                                >
                                                <div property="columns">
                                                        <div field="CMD_NAME" headerAlign="center" align="left">
                                                                命令名称
                                                        </div>
                                                        <div field="PARAM_NAME" headerAlign="center" align="left">
                                                        参数名称
                                                        </div>
                                                        <div field="CMD_DESC" headerAlign="center" align="left">
                                                                中文说明
                                                        </div>
作者: factory    时间: 2013-8-28 14:33:34

pj_style 发表于 2013-8-27 17:54
命令名称
                                                       
                                                         

我说过了,如果你更改下拉框的值,输入框是会被清空的。

另外,combobox现在就已经有按照输入,下拉数据自动匹配的功能了。




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2