解決打開的小窗口回調參數的問題,layui


 
問題:
         給用戶新增優惠券,單個用戶,單個優惠券,新增的話,用輸入窗點擊事件,點擊后彈出一個子窗口列表頁,選擇數據后,點擊確定,信息傳回父窗口,主要是解決傳值的問題。
解決思路:
         使用的是layui的前端框架,如下代碼:給輸入框增加 selectUser()事件,
            <dl>
                <dt>選擇用戶</dt>
                <dd>
                    <asp:TextBox ID="txt_user" runat="server" CssClass="input normal" datatype="*" onclick="selectUser()"></asp:TextBox>
                    <input type="hidden" name="userId" value="" id="userId"/>
                </dd>
            </dl>

            <dl>
                <dt>選擇優惠券</dt>
                <dd>
                    <asp:TextBox ID="txt_coupons" runat="server" CssClass="input normal" datatype="*" onclick="selectCoupons()"></asp:TextBox>
                    <input type="hidden" name="couponsId" value="" id="couponsId"/>
                </dd>
            </dl>
選擇事件代碼

點擊后觸發下面代碼,使用的是http://www.layui.com/doc/modules/layer.html,中的方法,

 1  // 選擇用戶
 2         function selectUser() {
 3             layer.open({
 4                 type: 2,
 5                 title: '選擇用戶',
 6                 shadeClose: true,
 7                 shade: 0.8,
 8                 area: ['52%', '70%'],
 9                 content: '../selectInfo/user_personal_list.aspx', //iframe的url
10                 btn: ['確定', '關閉'],
11                 yes: function (index) {
12                     //當點擊‘確定’按鈕的時候,獲取彈出層返回的值
13                     var res = window["layui-layer-iframe" + index].callbackdata();
14                     $('#txt_user').val(res.title);
15                     $('#userId').val(res.id);
16                     //打印返回的值,看是否有我們想返回的值。
17                     console.log($('#userId').val());
18                     //最后關閉彈出層
19                     layer.close(index);
20                 },
21                 cancel: function () {
22                     //右上角關閉回調
23                 }
24 
25             });
26         }
打開子窗口事件

然后,我們在點擊開的子窗口的頁面,加上如下js代碼,check事件,是選擇事件,選中哪一行后,獲取相應信息,然后把值傳遞給hidden的標簽,然后把數據放入callbackdata回調函數,傳給父窗口,OK,解決解決子窗口回調參數問題。

 1    <script type="text/javascript">
 2         var callbackdata = function () {
 3             var data = {
 4                 id:  $('#couponsID').val(),
 5                 title:$('#couponsName').val()
 6             };
 7             return data;
 8         }
 9 
10         function check(obj) {
11             var son = $(obj).parent();
12             var id = son.next('input').val();
13             var title = son.parent().next('td').find('a').html();
14             $('#couponsID').val(id);
15             $('#couponsName').val(title);
16         }
17     </script>
子窗口代碼

這里沒有放隱藏的標簽,各位請自己增加,不然沒有數據會報錯


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM