这是我的document.ready代码:
$(document).ready(function() {
$("#dialogbox").dialog({
open: function(event, ui) {$("a.ui-dialog-titlebar-close").remove();},
bgiframe: true,autoOpen: false,closeOnEscape: false,draggable: false,
show: "drop",hide: "drop",zIndex: 10000,modal: true,
buttons: {'Ok': function() {$(this).dialog("close");processEmp();}}
});
});
我有以下JavaScript代码,它带有一个参数:
function test(pEmp)
{
var a = pEmp.value);
$('#dialogbox').dialog('open');
}
我的问题是,根据我传入我的测试函数的值,然后调用我的jQuery UI对话框('#dialogbox'),当用户按下对话框中的'Ok'按钮时,我需要不知何故(这是我不知道该怎么做),将保存我的pEmp.value的变量“a”传递给我的另一个函数processEmp(a?),我已将其附加到我的'Ok'按钮。< / p>
当用户确认对话框时,我基本上需要此值。
答案 0 :(得分:6)
您可以在打开之前将自定义选项传递给对话框:
$(function () {
$("#dialog").dialog({
open: function (event, ui) { $("a.ui-dialog-titlebar-close").remove(); },
bgiframe: true,
autoOpen: false,
closeOnEscape: false,
draggable: false,
show: "drop",
hide: "drop",
zIndex: 10000,
modal: true,
buttons: { 'Ok': function () {
$(this).dialog("close");
processEmp($(this).data("pEmpValue"));
}
}
});
});
function processEmp(a) {
alert(a);
}
function test(pEmp) {
$("#dialog").data("pEmpValue", pEmp.value).dialog("open");
}
甚至最简单的解决方案是在窗口范围内声明a
变量:
var a = null;
$(function () {
$("#dialog").dialog({
open: function (event, ui) { $("a.ui-dialog-titlebar-close").remove(); },
bgiframe: true,
autoOpen: false,
closeOnEscape: false,
draggable: false,
show: "drop",
hide: "drop",
zIndex: 10000,
modal: true,
buttons: { 'Ok': function () {
$(this).dialog("close");
processEmp(a);
}
}
});
});
function processEmp(a) {
alert(a);
}
function test(pEmp) {
a = pEmp.value;
$("#dialog").dialog("open");
}
答案 1 :(得分:4)
您可以通过为'close'添加事件处理程序来实现此目的。像这样:
$("#dialogbox").bind("dialogclose", function(event, ui) { processEmp(a); });