• jeecg3.8popup添加选择后的回调事件


    第一步:

    项目名srcmainwebappplug-in oolscurdtools.js找到

    popupClick(pobj,tablefield,inputnames,pcode,params) 方法,修改以下*括起来的加粗部分

    function popupClick(pobj,tablefield,inputnames,pcode,params) {
    if(inputnames==""||pcode==""){
    alert($.i18n.prop('popup.param.error.msg'));
    return;
    }
    console.log(111);
    // var content = "url:cgReportController.do?popup&id="+pcode;
    // if (params) content += "&" + params;
    if(typeof(windowapi) == 'undefined'){
    $.dialog({
    content: "url:cgReportController.do?popup&id="+pcode,
    zIndex: getzIndex(),
    lock : true,
    title:$.i18n.prop('common.select'),
    800,
    height: 400,
    cache:false,
    ok: function(){
    iframe = this.iframe.contentWindow;
    var selected = iframe.getSelectRows();
    if (selected == '' || selected == null ){
    alert($.i18n.prop('common.select.please'));
    return false;
    }else {
    //对应数据库字段不为空的情况下,根据表单中字典TEXT的值来取popup的值
    if(tablefield != "" && tablefield != null){
    var fields = tablefield.split(",");
    var inputfield = inputnames.split(",");
    for(var i1=0;i1<fields.length;i1++){
    var str = "";
    $.each( selected, function(i, n){
    if (i==0)
    str+= n[fields[i1]];
    else{
    str+= ",";
    str+=n[fields[i1]];
    }
    });
    var inputname = $(pobj).attr("name");
    var inputs = inputname.split(".");
    //判断传入的this格式是否为 "AA[#index#].aa"的形式
    if(str.indexOf("undefined")==-1){
    if(inputs.length>1){
    //update--begin--author:scott date:20171031 for:TASK #2385 online和代码生成器 一对多行popup多字段赋值问题解决-----------
    var inpu = inputs[0]+"."+inputfield[i1];

    $("input[name='"+inpu+"']").val(str);
    }else{
    $("input[name='"+inputfield[i1]+"']").val(str);
    }
    }else{
    if(inputs.length>1){

    var inpu = inputs[0]+"."+inputfield[i1];

    $("input[name='"+inpu+"']").val("");
    }else{
    $("input[name='"+inputfield[i1]+"']").val("");
    }
    }
    }
    }else{
    //对应数据库字段为空的情况下并且字典CODE传入多个值时,根据表单中字典CODE的值从popup中来取值
    var inputfield = inputnames.split(",");
    if(inputfield.length>1){
    for(var i1=0;i1<inputfield.length;i1++){
    var str = "";
    $.each( selected, function(i, n){
    if (i==0)
    str+= n[inputfield[i1]];
    else{
    str+= ",";
    str+=n[inputfield[i1]];
    }
    });
    var inputname = $(pobj).attr("name");
    var inputs = inputname.split(".");
    if(str.indexOf("undefined")==-1){
    if(inputs.length>1){
    var inpu = inputs[i1]+"."+inputfield[i1];
    $("input[name='"+inpu+"']").val(str);
    }else{
    $("input[name='"+inputfield[i1]+"']").val(str);
    }
    }else{
    if(inputs.length>1){
    var inpu = inputs[i1]+"."+inputfield[i1];
    $("input[name='"+inpu+"']").val("");
    }else{
    $("input[name='"+inputfield[i1]+"']").val("");
    }
    }
    }
    }else{
    //对应数据库字段为空的情况下并且字典CODE传入一个值时,根据表单中字典TEXT的值从popup中来取值
    var str = "";
    $.each( selected, function(i, n){
    if (i==0)
    str+= n[inputfield];
    else
    str+= ","+n[inputfield];
    });
    var inputname = $(pobj).attr("name");
    var inputs = inputname.split(".");
    if(str.indexOf("undefined")==-1){
    if(inputs.length>1){

    var inpu = inputs[0]+"."+inputfield[i1];

    $("input[name='"+inpu+"']").val(str);
    }else{
    $("input[name='"+inputfield+"']").val(str);
    }
    }else{
    if(inputs.length>1){

    var inpu = inputs[0]+"."+inputfield[i1];

    $("input[name='"+inpu+"']").val("");
    }else{
    $("input[name='"+inputfield+"']").val("");
    }
    }
    }
    }
    return true;
    }

    },
    cancelVal: $.i18n.prop('dialog.close'),
    cancel: true // 为true等价于function(){}
    });
    }else{
    $.dialog({
    content: "url:cgReportController.do?popup&id="+pcode,
    zIndex: getzIndex(),
    lock : true,
    title:$.i18n.prop('common.select'),
    800,
    height: 400,
    parent:windowapi,
    cache:false,
    ok: function(){
    iframe = this.iframe.contentWindow;
    var selected = iframe.getSelectRows();
    if (selected == '' || selected == null ){
    alert($.i18n.prop('common.select.please'));
    return false;
    }else {
    //对应数据库字段不为空的情况下,根据表单中字典TEXT的值来取popup的值
    if(tablefield != "" && tablefield != null){
    var fields = tablefield.split(",");
    var inputfield = inputnames.split(",");
    for(var i1=0;i1<fields.length;i1++){
    var str = "";
    $.each( selected, function(i, n){
    if (i==0)
    str+= n[fields[i1]];
    else{
    str+= ",";
    str+=n[fields[i1]];
    }
    });
    var inputname = $(pobj).attr("name");
    var inputs = inputname.split(".");
    //判断传入的this格式是否为 "AA[#index#].aa"的形式
    if(str.indexOf("undefined")==-1){
    if(inputs.length>1){
    var inpu = inputs[0]+"."+inputfield[i1];
    $("input[name='"+inpu+"']").val(str);
    }else{
    // $("input[name='"+inputfield[i1]+"']").val(str);
                      //*****************************************************************************************************************
    $("input[name='"+inputfield[i1]+"']").val(str).change();//回显完调用元素的onchange事件
                      
    //*****************************************************************************************************************
                                }
    }else{
    if(inputs.length>1){
    var inpu = inputs[0]+"."+inputfield[i1];
    $("input[name='"+inpu+"']").val("");
    }else{
    $("input[name='"+inputfield[i1]+"']").val("");
    }
    }
    }
    }else{
    //对应数据库字段为空的情况下并且字典CODE传入多个值时,根据表单中字典CODE的值从popup中来取值
    var inputfield = inputnames.split(",");
    if(inputfield.length>1){
    for(var i1=0;i1<inputfield.length;i1++){
    var str = "";
    $.each( selected, function(i, n){
    if (i==0)
    str+= n[inputfield[i1]];
    else{
    str+= ",";
    str+=n[inputfield[i1]];
    }
    });
    var inputname = $(pobj).attr("name");
    var inputs = inputname.split(".");
    if(str.indexOf("undefined")==-1){
    if(inputs.length>1){
    var inpu = inputs[i1]+"."+inputfield[i1];
    $("input[name='"+inpu+"']").val(str);
    }else{
    $("input[name='"+inputfield[i1]+"']").val(str);
    }
    }else{
    if(inputs.length>1){
    var inpu = inputs[i1]+"."+inputfield[i1];
    $("input[name='"+inpu+"']").val("");
    }else{
    $("input[name='"+inputfield[i1]+"']").val("");
    }
    }
    }
    }else{
    //对应数据库字段为空的情况下并且字典CODE传入一个值时,根据表单中字典TEXT的值从popup中来取值
    var str = "";
    $.each( selected, function(i, n){
    if (i==0)
    str+= n[inputfield];
    else
    str+= ","+n[inputfield];
    });
    var inputname = $(pobj).attr("name");
    var inputs = inputname.split(".");
    if(str.indexOf("undefined")==-1){
    if(inputs.length>1){
    var inpu = inputs[i1]+"."+inputfield[i1];
    $("input[name='"+inpu+"']").val(str);
    }else{
    $("input[name='"+inputfield+"']").val(str);
    }
    }else{
    if(inputs.length>1){
    var inpu = inputs[i1]+"."+inputfield[i1];
    $("input[name='"+inpu+"']").val("");
    }else{
    $("input[name='"+inputfield+"']").val("");
    }
    }
    }
    }
    return true;
    }

    },
    cancelVal: $.i18n.prop('dialog.close'),
    cancel: true // 为true等价于function(){}
    });
    }
    }

    第二步:
      
    找到使用popup的id元素,这里是appIds,添加onchange事件
    <input type="hidden" id="appIds" name="appIds" onchange="popupCallBack();"/>
    <input id="ai" readonly placeholder="请点击后选择" name="ai" style=" 85%" type="text" class="form-control" datatype="*" ignore="checked" onclick="popupClick(this,'id,name','appIds,ai','app_id')"/>

    第三步:
      js代码:
    //popup选择应用后触发
    function popupCallBack() {
      //拿到popup选择完毕后回显的id
      var appIdtemp=$("#appIds").val();
    //写自己的业务逻辑

    }
     
  • 相关阅读:
    JavaScript常用设计模式
    js 判断l对象类型
    JavaScript编程(终极篇)
    微信小程序开发-滑动操作
    解决Jquery向页面append新元素之后事件的绑定问题
    C# list与数组互相转换
    C# “贝格尔”编排法
    C#数字格式化
    SQL从一个表查询数据插入/更新到另一个表
    全局唯一标识符 (GUID)
  • 原文地址:https://www.cnblogs.com/zou-rong/p/11691880.html
Copyright © 2020-2023  润新知