这是我的html标记
<div id="dialog" title="">
<form action="" method="post">
<label>Name:</label>
<input id="name" name="name" type="text">
</form>
</div>
my call to messagebox
$(function () {
$("#A").on("click", function (e) {
e.preventDefault();
$('#dialog').data('opener', 'Test title').dialog('open');
});
});
和消息框本身
$('#dialog').dialog({
autoOpen: false,
height: 'auto',
width: 'auto',
title: $(this).data('opener'),
modal: false,
resizable: false,
buttons: {
'OK': function (e) {
//Do something
}
}
});
问题是MessageBox的Title属性总是空的。我哪里做错了?
谢谢!
这里是JsFiddle链接
您不需要使用.data
。
删除这一行
title: $(this).data('opener'),
并像这样打开对话框
$('#dialog').dialog('option', 'title', 'My New title').dialog('open');
这是一个时间问题。当对话框初始化时,#dialog
没有数据属性data-opener
。直到单击#A
才有值。并且在点击时添加data-opener
并不一定会更新#dialog
的标题,因此您不妨在打开对话框之前设置对话框的标题。
你必须像这样设置对话框的标题:
$('#dialog').dialog('option', 'title', 'Test title').dialog('open');