whoisyou131618 2008-08-07 21:59
浏览 598
已采纳

jQuery中的ui-dialog回调函数参数问题。

1.问题背景:
我想用ui-dialog来代替window.confirm.
window.confirm点击确定会返回一个值。但是ui-dialog不行,只能通过回调函数来达到目的。
2.目标:
点击ui-dialog中确定按钮要完成:关闭ui-dialog.执行回调函数
3.代替confirm的代码:
[code="js"]var MyUtil={};

//--_message是要显示的信息,callback是点击确定按钮以后要执行的回调函数
//
HUtil.confirm=function(_message,callback) {
var dialogId="alert_abcdef";

$("#"+dialogId,document).get(0).innerHTML=_message;

$("#"+dialogId,document).dialog({
   modal: true,
   buttons: {
        "确定": function(){
                callback();//这里肯定不对!!!!!
                $(this).dialog("close");
    },
        "取消": function(){
             $(this).dialog("close");
        }
  }
});    

}[/code]

4.调用MyUtil.confirm的代码:
[code="js"]/**删除**/
function deleteData(){
var ids="1";
///-------------回调函数有参数!!!
MUtil.confirm("你确认要删除选中的数据?",function(ids){deleteCallback(ids)});

}

/**删除的回调函数,作用是提交到后台**/
function deleteCallback(ids){

var sAction = "/dict.do?method=delete&ids="+ids;
document.forms[0].action=sAction;

document.forms[0].submit();
}[/code]
[color=red]5。问题:[/color]
在Action中得到ids是"[b]undefined[/b]",而实际想得到的是[b]1[/b]

  • 写回答

1条回答 默认 最新

  • weixin_42511756 2008-08-08 12:35
    关注

    [code="java"]
    var MyUtil={};

    //--_message是要显示的信息,callback是点击确定按钮以后要执行的回调函数
    //
    HUtil.confirm=function(_message,callback) {
    var dialogId="alert_abcdef";

    $("#"+dialogId,document).get(0).innerHTML=_message;
    
    $("#"+dialogId,document).dialog({
       modal: true,
       buttons: {
            "确定": function(){
                    callback();//这里肯定不对!!!!!
                    $(this).dialog("close");
        },
            "取消": function(){
                 $(this).dialog("close");
            }
      }
    });    
    

    }
    [/code]
    修改为
    [code="java"]
    var MyUtil={};

    //--_message是要显示的信息,callback是点击确定按钮以后要执行的回调函数
    //
    HUtil.confirm=function(_message,callback) {
    var dialogId="alert_abcdef";

    $("#"+dialogId,document).get(0).innerHTML=_message;
    
    $("#"+dialogId,document).dialog({
       modal: true,
       buttons: {
            "确定": function(){
                    callback.call();
                    $(this).dialog("close");
        },
            "取消": function(){
                 $(this).dialog("close");
            }
      }
    });    
    

    }
    [/code]
    [code="java"]
    /**删除**/
    function deleteData(){
    var ids="1";
    ///-------------回调函数有参数!!!
    MUtil.confirm("你确认要删除选中的数据?",function(ids){deleteCallback(ids)});

    }
    [/code]
    修改为
    [code="java"]
    /**删除**/
    function deleteData(){
    var ids="1";
    ///-------------回调函数有参数!!!
    MUtil.confirm("你确认要删除选中的数据?",function(){deleteCallback(ids)});

    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突