我的应用程序适用于许多模态窗体对话框,我想通过调用函数创建模态窗体对话框,但是当我在对话框“i.apply不是函数”上单击“确定”按钮时出现错误。我的代码在下面
html:
<div id="dlg_srch_acnt">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="dtl_acnt_srch" style=" padding-bottom:0px;">
<thead>
<tr>
<th>Id</th>
<th>Account name</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
脚本
function init_dlg(id, autoOpen, height, width, modal, fn_button1)
{
id.dialog({
autoOpen:autoOpen,
height:height,
width:width,
modal:modal,
buttons:{
'OK':fn_button1,
},
close:fn_close
});
}
function fn_ok()
{
$('#parnt_acnt').val(acnt_name);
$('#dlg_srch_acnt').('close');
}
init_dlg($('#dlg_srch_acnt'), false, '440', '480', true, 'fn_ok()');
答案 0 :(得分:3)
我相信您的$('#dlg_srch_acnt').('close');
应为$('#dlg_srch_acnt').dialog('close');
并在参数中传递函数fn_ok
而不是fn_ok()
,因为它是它的执行值。
init_dlg($('#dlg_srch_acnt'), false, '440', '480', true, 'fn_ok');
acnt_name
函数中的fn_ok
是什么?定义它(在使用之前)或传递字符串,而不是变量名。
答案 1 :(得分:0)
$('#dlg_srch_acnt')
。所以你需要像这样用jquery包装你的id
function init_dlg(id, autoOpen, height, width, modal, fn_button1)
{
$(id).dialog({ // Jquery wrapping should be done .
autoOpen:autoOpen,
height:height,
width:width,
modal:modal,
buttons:{
'OK':fn_button1,
},
close:fn_close
});
}
答案 2 :(得分:0)
如果你只有一个按钮
,可能会删除fn_button1之后的逗号buttons:{
'OK':fn_button1
},
答案 3 :(得分:0)
这里有几个问题。
0.1。正如Rajat指出的那样,$('#dlg_srch_acnt').('close');
应为$('#dlg_srch_acnt').dialog('close');
0.2。关于传递函数名称,Rajat 几乎正确。应该是这样的(没有引号):
init_dlg($('#dlg_srch_acnt'), false, '440', '480', true, fn_ok);
0.3。从jQUI对话框对象内部引用外部函数时,仍必须将它们包装在功能块中:
buttons: {
'OK': function(){
fn_button1();
}
},
close: function(){
fn_close();
}
*请注意,您没有在原始帖子*
中定义fn_close这是完整的代码,添加了一些内容以显示它的工作情况(特别是,在dlg关闭时注意BOB更改为JANE):
<强> HTML:强>
<input id="parnt_acnt" type="text" value="bob" />
<div id="dlg_srch_acnt">
<p>Inside the dialog</p>
</div>
<强>的javascript / jQuery的:强>
var acnt_name = "jane";
function init_dlg (id, autoOpen, height, width, modal, fn_button1 ) {
id.dialog({
autoOpen: autoOpen,
height: height,
width: width,
modal: modal,
buttons: {
'OK': function(){
fn_button1();
}
},
close: function(){
fn_close();
}
});
}
init_dlg( $('#dlg_srch_acnt'), false, '440', '480', true, fn_ok );
function fn_ok() {
$('#parnt_acnt').val(acnt_name);
$('#dlg_srch_acnt').dialog('close');
}
function fn_close() {
$('#dlg_srch_acnt').dialog('close');
alert('Close fn accessed');
}