无法获取JQuery对话框的文本以显示

时间:2015-12-02 22:24:28

标签: jquery jquery-ui

我新发现了JQueryUI对话框。但它没有正确显示。我有一个div指定对话框 - 确认。正在使用是和否按钮设置对话框。它有一个标题。

当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如下所示:

<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的显示设置为none,否则会在页面加载时显示。当AJAX调用返回正确的值时调用对话框函数,然后打开对话框;它显示标题和按钮;它执行按钮的功能;但是用户没有解释它的文字。我尝试更改div的高度,并更改对话框的高度。做前者没有区别;执行后者会缩小对话框的宽度,而不会增加高度或更改div的参数。

我去了JqueryUI教程网站,找到了所有可用的选项,但这没有帮助。我也查看过很多stackoverflow帖子,但没有一个分辨率有所不同。

2 个答案:

答案 0 :(得分:0)

由于您使用的是autoOpen: false,因此您需要致电open()以显示对话框。但更重要的是,你的内联css会覆盖对话框css并导致它无法正常工作。您的对话框初始化也在您的条件之内,但它应该在全局范围内。

  1. 删除你的内联css。
  2. 将对话框的初始化移至IF条件之外,使其具有全局范围。
  3. 在IF条件中,调用open()打开对话框
  4. 您似乎正在尝试将JSON响应中的某些值添加到模式中,但您引用的ID在HTML中不存在。您可以轻松地将该元素添加到div中,然后在调用open();
  5. 之前插入该值

    <强> HTML

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

    JQuery (将GFM值添加到span并打开对话框)

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

    这是Fiddle Demo。注意:我没有使用条件来显示对话框,而是使用按钮单击。

答案 1 :(得分:0)

正如我解释的那样 http://www.experts-exchange.com/questions/28906222/Can't-get-the-the--jQuery-dialog-to-display.html

以上解决方案无效。

相反,除了“显示:无”之外,我从div中删除了所有内联样式,并将其他所有内容保持不变。现在它按预期工作。