1

首先:我想在我的 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>
4

2 回答 2

3

如果您希望将“某些文本”替换为data,则需要将其包装在 a 中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");
    }
});
于 2012-05-12T18:38:22.413 回答
0

尝试修复您的代码:

"在文件路径上缺少a

$("#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()

于 2012-05-12T18:30:47.777 回答