jQuery MiniUI

标题: combobox 如何显示非下拉值 [打印本页]

作者: iamjxc    时间: 2015-1-5 12:57:30     标题: combobox 如何显示非下拉值

在某些场景下, 用户可以从下拉框里选择, 也可以手工直接录入后保存,
但是手工录入的内容, 在界面再次打开时, 下拉框的 text 内容是空的, 而不是上次手工录入的值

如果value 在data 里找不到匹配项, 建议把 value 直接显示到 text 里, 就能够解决这个问题
<input class="mini-combobox" url="../data/countrys.txt" value="手工录入的值"  />   




作者: felt    时间: 2015-1-5 13:26:22

不在下拉框里的数据请同时设置text=""

作者: iamjxc    时间: 2015-1-5 14:24:26

felt 发表于 2015-1-5 13:26
不在下拉框里的数据请同时设置text=""

这样可行, 但是有难度.
控件本身是通过 url 加载数据的, 如何知道 value 不在下拉列表或者下拉树里呢?

作者: felt    时间: 2015-1-5 14:46:42

iamjxc 发表于 2015-1-5 14:24
这样可行, 但是有难度.
控件本身是通过 url 加载数据的, 如何知道 value 不在下拉列表或者下拉树里呢?
...

getData可以获取下拉框数据,遍历查找是否有匹配的
作者: iamjxc    时间: 2015-1-8 10:49:30

felt 发表于 2015-1-5 14:46
getData可以获取下拉框数据,遍历查找是否有匹配的

单个解决太麻烦, 如何扩展控件, 做成通用的解决方案?
或者未来 mini 能否考虑支持这个特性?
作者: dforce    时间: 2015-1-8 11:10:44

iamjxc 发表于 2015-1-8 10:49
单个解决太麻烦, 如何扩展控件, 做成通用的解决方案?
或者未来 mini 能否考虑支持这个特性? ...

这种需求极少,应该不会增加
作者: iamjxc    时间: 2015-1-8 13:10:21

本帖最后由 iamjxc 于 2015-1-8 13:15 编辑
dforce 发表于 2015-1-8 11:10
这种需求极少,应该不会增加

也不是想象的那么少, 有时下拉列表的字典调整后, 原来的值也找不到对应的项目了, 这时候也应该把 id 显示出来, 默认显示空值是不太合理的, 没有匹配项, 并且没有设置 text 属性时, 把 id 显示出来


作者: dforce    时间: 2015-1-8 14:19:24

iamjxc 发表于 2015-1-8 13:10
也不是想象的那么少, 有时下拉列表的字典调整后, 原来的值也找不到对应的项目了, 这时候也应该把 id 显示 ...

这个你可以同时保存text和value
表单下你可以设置name和textname
表格下你可以设置列的field和displayField

作者: iamjxc    时间: 2015-1-9 09:07:48

dforce 发表于 2015-1-8 14:19
这个你可以同时保存text和value
表单下你可以设置name和textname
表格下你可以设置列的field和displayFie ...

楼主, 数据库设计都是存 id 的, 再存 text 太冗余了
还是控件支持最有效
作者: felt    时间: 2015-1-9 09:37:58

iamjxc 发表于 2015-1-9 09:07
楼主, 数据库设计都是存 id 的, 再存 text 太冗余了
还是控件支持最有效

目前只能这样处理
作者: mfgc    时间: 2015-3-4 12:14:57

<input class="mini-combobox" name="a" textName="a" allowInput="true" data="cdata"/>

给控件加一个textName 就解决了,值要和name一致。我是这么处理的
作者: iamjxc    时间: 2015-3-6 21:44:07

本帖最后由 iamjxc 于 2015-3-6 21:45 编辑
mfgc 发表于 2015-3-4 12:14
给控件加一个textName 就解决了,值要和name一致。我是这么处理的

感谢非官方的答复!!
按你的方案, 没有成功. 比如下面这个例子, 我该怎么配置?
http://www.miniui.com/demo/#src=combobox/combobox.html

我目前改成:
<input id="combo1" class="mini-combobox" textField="text" textName="combo1" valueField="id"
    url="../data/countrys.txt" value="cn2"  allowInput="true" />     

请注意 value=cn2 在数据集里不存在. 但是控件的text还是空白的, 我希望 cn2 不能解析时, 直接显示 cn2 出来

作者: mfgc    时间: 2015-3-8 14:20:07

iamjxc 发表于 2015-3-6 21:44
感谢非官方的答复!!
按你的方案, 没有成功. 比如下面这个例子, 我该怎么配置?
http://www.miniui.com/demo ...

你这个需求有点怪,如果不是数据集的数据,为何要设置成默认数据呢?
那样的话,需要通过代码combo1.set({value:"cn2"})
作者: iamjxc    时间: 2015-3-12 17:33:35

mfgc 发表于 2015-3-8 14:20
你这个需求有点怪,如果不是数据集的数据,为何要设置成默认数据呢?
那样的话,需要通过代码combo1.set( ...

我的需求一点儿不奇怪啊, 我们的系统有这种情况.
再举个例子, 假如数据字典的数据被删除了, 那么 combobox 的 data 就是空的
这时候显示历史数据, 应该把历史数据的 id 显示出来吧? 但是combobox 显示为空,
这会让人产生错觉, 以为历史数据没有录入值


作者: dforce    时间: 2015-3-16 14:13:09

iamjxc 发表于 2015-3-12 17:33
我的需求一点儿不奇怪啊, 我们的系统有这种情况.
再举个例子, 假如数据字典的数据被删除了, 那么 combobo ...

已经更新,请下载最新版本
1 新增属性clearOnLoad,默认值true,加载新数据源,清空原有值
设置false,保留原有值
2 手动输入的值,保存后再次显示,如果不在下拉列表中,值和文本一致。
作者: iamjxc    时间: 2015-3-22 07:49:36

dforce 发表于 2015-3-16 14:13
已经更新,请下载最新版本
1 新增属性clearOnLoad,默认值true,加载新数据源,清空原有值
设置false,保 ...

感谢普加公司的努力!




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