查找带回

本文详细介绍了BJUI框架中的查找带回功能实现方法,包括组件创建、弹出窗口配置及值返回机制。提供了具体示例代码,展示了如何使用Data属性和jQuery API来触发查找带回功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个功能我没有实现,因为我对bjui还不熟悉,现在的新版本的将这个功能去除了。抄一遍吧

 

查找带回功能,流程:

1、打开一个呈现数据的弹出窗口

2、选择一个或多个值,将值返回到触发页面对应的input

3、关闭弹出窗口

 

感觉自己能写dialog实现,不看了现在,不测试没啥兴趣。到时候用到了再补上吧。

 

现在我下载了旧版本,然后测试能够成功!

 

首先要知道什么是查找带回的功能:

1、点击某个地方,打开一个呈现数据的弹出窗口;

2、选择一个或多个值,将值返回到触发页面对应的input;

3、关闭弹出窗口

 

要求:

1、首先你需要写一个查找带回的组件:

两种方式:

  1、Data属性:input添加属性data-toggle="lookup",或者点击含有属性data-toggle=“lookupbtn”的a元素触发

input添加属性data-toggle="lookup":

<label>PID</label><input type="text" name="pid" size="5">
        <label>NAME</label><input type="text" data-toggle="lookup" name="name" size="10" data-url="jsp/mylookup.html">

a链接data-toggle="lookupbtn"触发:

<label>PID</label><input type="text" name="t2.pid" size="5">
        <label>NAME</label><input type="text" name="t2.name" size="10"><a href="jsp/mylookup.html" data-toggle="lookupbtn" data-group="t2">打开lookup窗口</a>

 

2、jqueryAPI触发方式:

$(input).lookup(options)

例子:

<script type="text/javascript">
          $(function(){
            $("#llk").click(function(){
              $(this).lookup({url:'jsp/mylookup.html',group:'t3'});
            });
          });
        </script>
        <label>PID</label><input type="text" name="t3.pid" size="5">
        <label>NAME</label><input id="llk" type="text" name="t3.name" size="10">

 

ok,我们知道了如何创建lookup组件,那么它的弹出窗口有什么要求吗?如何做到将值返回?将值返回有什么需要注意的吗?

这是我们例子中的查找页面(弹出窗口):

<div class="bjui-pageHeader">
    <form id="pagerForm" data-toggle="ajaxsearch" action="mylookup.html" method="post">
        <div class="bjui-searchBar">
            <label>名称:</label><input type="text" value="" name="code" size="10" />&nbsp;
            <button type="submit" class="btn-default" data-icon="search">查询</button>&nbsp;
            <a class="btn btn-orange" href="javascript:;" data-toggle="reloadsearch" data-clear-query="true" data-icon="undo">清空查询</a>&nbsp;
            <div class="pull-right">
                <input type="checkbox" name="lookupType" value="1" data-toggle="icheck" data-label="追加" checked>
                <button type="button" class="btn-blue" data-toggle="lookupback" data-lookupid="ids" data-warn="请至少选择一项职业" data-icon="check-square-o">选择选中</button>
                <br/>

            </div>
        </div>
    </form>
</div>
<div class="bjui-pageContent">
    <table data-toggle="tablefixed" data-width="100%">
        <thead>
            <tr>
                <th data-order-field="id">No.</th>
                <th data-order-field="name">名称</th>
                <th data-order-field="note">描述</th>
                <th width="74">操作</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>自由职业</td>
                <td>Free Man</td>
                <td>
                    <a href="javascript:;" data-toggle="lookupback" data-args="{pid:'1', name:'自由职业'}" class="btn btn-blue" title="选择本项" data-icon="check">选择</a>
                </td>
            </tr>
            <tr>
                <td>2</td>
                <td>教师</td>
                <td>teacher</td>
                <td>
                    <a href="javascript:;" data-toggle="lookupback" data-args="{pid:'2', name:'学生'}" class="btn btn-blue" title="选择本项" data-icon="check">选择</a>
                </td>
            </tr>
        </tbody>
    </table>
</div>
View Code
<a href="javascript:;" data-toggle="lookupback" data-args="{pid:'2', name:'学生'}" class="btn btn-blue" title="选择本项" data-icon="check">选择</a>
                    <button class="btn-green" data-toggle="lookupback" data-args="{pid:'2', name:'学生'}" class="btn btn-blue"  data-icon="check">选择</button>

选择返回的组件可以是一个a链接也可以是一个按钮,但是data-toggle必须是“lookupback” 返回的值是json格式的,其中的key和主页面中的name与group是一种对应关系。

如果选择多个不替换而是,分隔的话,上面的那个多选按钮的代码,不过暂时我没看懂。

 

参数(options)

名称类型默认值描述
urlstringnull【必选】D-Url 打开looupu的URL,a链接触发时可以将url定义在href属性
groupstringnull【可选】input的名称,适用于input名称为"aa.bb"的形式,其中group为:aa    我的理解:类似于struts中自动参数注入的时候的对象.属性名的形式,定义了group为对象,那么在对应页面中的属性名的值可以注入name为对象.属性名当中
suffixstringnull【可选】input的名称后缀,适用于input名称为"abcd[]"或者"aa.bb[]"的形式,其中suffix为: [],特别注意:如果真实情况suffix为"[]",请写为" []",空格加[],防止被转义为空数组
idstringlookup_dialog【可选】弹出窗口的id
maskbooleantrue【可选】是否弹出模态窗口
widthint600【可选】弹出窗口的宽度
heightint400【可选】弹出窗口的高度
titlestringLookup【可选】弹出窗口的标题,单击触发时,如未明确定义title,将取元素的text值作为title
maxablebooleantrue【可选】弹出窗口可以最大化
resiablebooleantrue【可选】弹出窗口可以调整大小

 

事件

事件名称中文说明描述
afterchange.bjui.lookup带回值后的事件监听该事件,可以在input取回值后进行相关操作

这样监听lookup的事件:mylookup -selector表示lookup赋值了的input选择器

$('mylookup - selector').on('afterchange.bjui.lookup', function(e, data) {
    var myvalue = data.value
    
    // do something...
})

 

注意:

关于动态更换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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值