2015-12-02 62 views
0

我刚刚发现了JQueryUI对话框。但它不能正确显示。我有一个指定对话框确认。该对话框正在设置是和否按钮。它有一个标题。无法获取要显示的JQuery对话框的文本

当来自AJAX呼叫的特定响应返回时,将显示该对话框。因此,该对话框声明是这样的:

if (data.result.Data.HasAssociatedGFM) { 
    var GFMvalue = data.result.Data.HasAssociatedGFM; 
    $("#dialog-confirm").dialog({ 
      resizable: false, 
      //height: 500, 
      modal: true, 
      autoOpen: false, 
      buttons: { 
        "Yes": function() { 
         $("#HasGFM").val(GFMvalue); 
         $(this).dialog("close"); 
        }, 
        "No": function() { 
         $(this).dialog("close"); 
        } 
       } 
     }); 
    } 

对话格如下:

<div id="dialog-confirm" title="Has GFM?" style="display:none;text-align:center; 
position: fixed;height:15%; width: 50%;top: 35%;left: 25%;/*margin-left: -190px; 
margin-top: -100px;*/background-color: #ffffff;border: 2px solid #336699;padding: 0px; 
z-index: 102;font-family: Verdana;font-size: 12pt; "> 
     <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"> 
     </span> 
      Is this a GFM End Item requirement? 
     </p> 
</div> 

的div显示设置为无,因为它否则将显示在页面加载。当AJAX调用返回适当的值时调用对话框函数时,对话框打开;它显示标题和按钮;它执行按钮的功能;但没有用户解释它的文本。我试着改变div的高度,并改变对话框的高度。做前者没有区别;做后者缩小对话框的宽度而不增加高度或改变div的参数。

我去jQueryUI的教程网站上发现所有可用的选项,但没有帮助。我查看了很多stackoverflow的帖子,但没有一个解决方案有所作为。

+0

这个div没有正确粘贴。其实它看起来像这样:

user1161391

回答

0

由于您使用autoOpen: false,你将需要调用open()为了显示你的对话框。但更重要的是,你的内联css覆盖了对话框的CSS并导致它无法正常工作。你也有你的对话init在你的条件,但它应该在全球范围内。

  1. 删除您的内联CSS。
  2. 在IF条件之外移动对话框的初始化,使其具有全局范围。
  3. 在你的IF条件下,调用open()打开你的对话框
  4. 看起来你试图从你的JSON响应中添加一些值到模态,但是你引用的id不存在于你的HTML。您可以轻松地将该元素添加到您的div,然后在调用open()之前插入该值;

HTML

<div id="dialog-confirm" title="Has GFM?">Is this a GFM End Item requirement?<span id="HasGFM"></span></div> 

JQuery的(添加GFMvalue跨越,打开对话框)

$("#HasGFM").text("47"); 
$("#dialog-confirm").dialog('open'); 

这里是一个Fiddle Demo。注意:不是使用条件来显示对话框,而是使用按钮单击。