本节主要介绍框架的查找带回功能,流程:1. 打开一个呈现数据的弹出窗口;2. 选择一个或多个值,将值返回到触发页面对应的input;3. 关闭弹出窗口。
关于动态更换url:
如果需要动态更换lookup的url,需要为lookupbtn新增属性data-newurl
,如:
$('input').parent().find('a.bjui-lookup').data('newurl', 'new url') //通过input框修改附加按钮的url $('lookupbtn').data('newurl', 'new url') //直接修改lookup按钮的url
data-toggle="lookup"
或 点击含有属性data-toggle="lookupbtn"
的元素触发。示例代码:
<label>PID:</label><input type="text" name="pid" size="5"> <label>查找名称:</label><input type="text" data-toggle="lookup" data-url="doc/form/mylookup.html" name="name" size="10"> <label>PID:</label><input type="text" name="pid" data-filter="inputFilter" size="5"> <label>查找名称:</label><input type="text" data-toggle="lookup" data-filter="inputFilter" data-input-filter="inputFilter" data-url="doc/form/mylookup.html" name="name" size="10">DOM示例2: 打开Lookup窗口
示例代码:
<label>PID:</label><input type="text" name="t2.pid" size="5"> <label>查找名称:</label><input type="text" name="t2.name" size="10"> <a href="doc/form/mylookup.html" data-toggle="lookupbtn" data-group="t2">打开Lookup窗口</a>DOM示例3:
示例代码:
<label>PID:</label><input type="text" name="aa[pid]" size="5"> <label>查找名称:</label><input type="text" data-toggle="lookup" data-url="doc/form/mylookup.html" name="aa[name]" data-arrayfix="aa" size="10">DOM示例4:
示例代码:
<label>PID:</label><input type="text" name="bb[pid]" size="5"> <label>查找名称:</label><input type="text" data-toggle="lookup" data-url="doc/form/mylookup.html" name="bb[name]" data-arrayfix="bb" size="10" data-before-select="lookup_before_select">
$(input).lookup(options)DOM示例:
示例代码:
<label>PID:</label><input type="text" name="api[pid]" size="5"> <label>查找名称:</label><input type="text" data-filter="lookup-api" data-url="doc/form/mylookup.html" name="api[name]" data-arrayfix="api" size="10">
$.CurrentNavtab.findFilter('lookup-api').lookup({ addBtn: true, // 实例化是否添加btn open: false, // 实例化是否直接打开 beforeSelect: function (val, valArray, type) { console.log(val) console.log(valArray) console.log(type) $(this).alertmsg('info', '选择前回调') } })
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
url | string | null | [必选] D-Url 打开lookup的URL,a链接触发时可以将url定义在href属性。。 |
inputFilter | string | null | 1.4.3+ [可选] input的[data-filter]过滤,设置此属性仅对符合[data-filter]属性的input进行赋值 |
autoAssign | bool | true |
1.4.3+
[可选] 选中项次后是否自动赋值,可与beforeSelect 搭配,实现完全自定义控制回调
|
group | string | null | [可选] input的名称,适用于input名称为"aa.bb"的形式,其中 group为:aa 。 |
suffix | string | null | [可选] input的名称后缀,适用于input名称为"abcd[]"或"aa.bb[]"的形式,其中 suffix为:[] ,特别注意: 如果真实情况suffix为"[]",请写为"
[]" ,空格加"[]",以防止被转义为空数组。
|
arrayfix | string | null | [可选] input的名称后缀,适用于input名称为"[abcd]"或"aa[abcd]"的形式,一般用于PHP 语言下可编辑表格数组拼接 |
id | string | lookup_dialog | [可选] 弹出窗口的id。 |
mask | boolean | true | [可选] 是否弹出模态窗口。 |
width | int | 600 | [可选] 弹出窗口的宽度。 |
height | int | 400 | [可选] 弹出窗口的高度。 |
title | string | Lookup | [可选] 弹出窗口的标题,单击触发时,如未明确定义title,将取元素的text值作为title。 |
maxable | boolean | true | [可选] 弹出窗口可以最大化。 |
resizable | boolean | true | [可选] 弹出窗口可以调整大小。 |
open | boolean | true |
1.1.9+
api实例化是否自动打开弹窗,可与addBtn 搭配实现手动实例化组件
|
addBtn | boolean | false | 1.1.9+ api实例化是否新增图标点击。 |
block | boolean | false | [可选] 生成包裹器是否为 display: block; |
beforeSelect | function | null |
[可选] 选中目标赋值之前,返回false 则停止赋值关闭窗口动作。
function(val)
回调参数
val 为赋值参数
1.1.8+
function(val, valArray, type)
回调参数
val 为赋值参数,回调参数valArray 选中数据的array集,type 是否追加
|
事件名称 | 版本 | 说明 | 参数 | 使用方法 | 参数说明 |
---|---|---|---|---|---|
setValCustom | 1.7.3+ | 自定义回调结果 | (val: object, valArray: array, isAppend: boolean) | $(target).lookup('setValCustom', val, valArray, isAppend) | target必须为查找带回弹出框内元素,isAppend:是否追加,val为赋值object,当autoAssign为true时遵循配置项规则,参数对应beforeSelect |
事件名称 | 中文说明 | 描述 |
---|---|---|
afterchange.bjui.lookup | 带回值后的事件 | 监听该事件,可以在input取得返回值后进行相关操作。 |
这样监听lookup的事件:mylookup - selector
表示lookup赋值了的input选择器
$('mylookup - selector').on('afterchange.bjui.lookup', function(e, data) { var myvalue = data.value // do something... })