我需要一个jquery表单对话框,在接受表单后调用带有两个参数的函数。一个参数来自表单,另一个参数来自初始化/打开对话框。 如何在不使用全局变量的情况下执行此操作?
编辑:
$("#something").click( function(){
var global_var=param2;
$('#dialog').dialog('open');
}
$('#dialog').dialog({modal: true,
autoOpen: false,
buttons: {'Cancel': function(){}
'Accept': function(){ callback($('#widget').val(),global_var);}
}
});
<div id="#dialog">
<p>
<input type="text" id="widget" />
</p>
</div>
答案 0 :(得分:1)
您可以尝试使用param2隐藏创建输入:
$("#something").click( function(){
$('#dialog').find('#param2').val(param2);
$('#dialog').dialog('open');
}
$('#dialog').dialog({
modal: true,
autoOpen: false,
buttons: {
'Cancel': function() { }
'Accept': function() {
callback($('#widget').val(), $('#param2').val());
}
}
});
<div id="#dialog">
<input type="hidden" id="param2" value="" />
<p>
<input type="text" id="widget" />
</p>
</div>
答案 1 :(得分:0)
使用闭包:
(function(){
// anything in here is local to this closure
var foo = 0; // local
bar = 1; // global
$("#elementName").dialog(<options here>,
onBeforeClose: function () { <do something here>});
}())