不能在Jquery消息框中传递Title作为参数



这是我的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');

相关内容

最新更新