ajax POST提交后刷新iframe

时间:2012-03-19 11:54:02

标签: jquery iframe reload

我有一条通过AJAX提交的消息提交了一条消息,然后在succes函数中做了一些漂亮的动作。我的问题是:如何在slipeUp()完成后重新加载页面?对于它的价值,窗口内容在id =“thread”的iframe内,如果这很重要的话。这是我的代码。一切正常,除了我无法在slideUp()之后重新加载页面。任何帮助表示赞赏!

  $(function() {
  $('.error').hide();
  $("#button").click(function() {

    $('.error').hide();

      var subject = $("input#subject").val();

      if (subject == "")
        {
      $("label#subject_error").show();
      $("input#subject").focus();
      return false;
        }

      var message = $("textarea#message").val();

      if (message == "")
        {
      $("label#message_error").show();
      $("textarea#message").focus();
      return false;
        }

        var thread_id = {THREAD_ID};
        var sender_id = {SENDER_ID};

        var dataString = 'sender_id='+ sender_id + '&thread_id=' + thread_id + '&message=' + message + '&submit=' + true;
        //alert (dataString);return false;
        $.ajax(
        {
          type: "POST",
          url: "{U_NEW}",
          data: dataString,
          success: function()
            {
            $('.dialog').html("<div id='succes'></div>");
            $('#succes').html("<h2>{L_MESSAGE_SENT}</h2>")
            .hide()
            .fadeIn(800, function()
                {
              $('#succes')
            });

            $('#succes').delay(1500).slideUp(500);
            }
        });
  });
});

2 个答案:

答案 0 :(得分:0)

slideUp可以将回调函数作为第二个参数。

.slideUp( [duration] [, callback] )

所以你可以这样做:

$('#succes').delay(1500).slideUp(500, function () {
    //document.getElementById('thread').contentWindow.location.reload(); // reload iframe
    var iframe = window.parent.document.getElementById('thread');
    iframe.src = iframe.src;
});

答案 1 :(得分:0)

你的意思是

  $('#succes').delay(1500).slideUp(500, function(){ location.reload();});