我想在Ajax请求之后显示Jquery UI Dialog(消息)

时间:2012-05-12 18:23:20

标签: jquery ajax user-interface dialog

首先:我想在我的Jquery UI消息框中显示带有Ajax请求的返回数据。第二个:在下面的代码中,消息框只显示1秒钟。我不知道为什么!!!!!

<script>
  $(document).ready(function(){
    $("#dialog-confirm").dialog({
      autoOpen:false,
      resizable: false,
      height:140,
      modal: true,
      buttons: {
        "Ok": function() {
           $( this ).dialog( "close" );
        }
      }
    });

    $("#customer_form").submit(function(){
      $.get("../ajax/Services.php?Add=Add, function(data){
        if (data) {
          $("#dialog-confirm").dialog("open");
        }
      });
    });
  });
</script>
<body>
  <div id="dialog-confirm" title="MY TITLE">
    <p>
      SOME TEXT <span class="ui-icon ui-icon-alert"
                      style="float:right; margin:0 7px 20px 0;"></span>
    </p>
  </div>       
</body>

2 个答案:

答案 0 :(得分:3)

如果你希望“SOME TEXT”被data取代,你需要将它包装在span中,以便你可以只选择那个元素而不影响它旁边的图标:

 <div id="dialog-confirm" title="MY TITLE">
    <p>
      <span id="dialog-text"> </span>
      <span class="ui-icon ui-icon-alert"
                      style="float:right; margin:0 7px 20px 0;"></span>
    </p>
  </div> 

对于第二个问题,您所看到的可能是新页面被加载。

您需要阻止submit操作跟进并真正提交。

$("#customer_form").submit(function(ev) {
    ev.preventDefault();
    if (data) {
      $("#dialog-text").html(data);
      $("#dialog-confirm").dialog("open");
    }
});

答案 1 :(得分:0)

尝试修复您的代码:

文件路径

MISSING "

$("#customer_form").submit(function(){
  $.get("../ajax/Services.php?Add=Add", function(data){
    if (data) {
      $("#dialog-confirm").dialog("open");
    }
  });
});

要将返回的数据放在对话框中,您可以:

$("#customer_form").submit(function(){
  $.get("../ajax/Services.php?Add=Add", function(data){
    if (data) {
      $("#dialog-confirm p").append(data);
      $("#dialog-confirm").dialog("open");
    }
  });
});

阅读:Jquery .append()