2012-08-01 100 views
0

我正在做一個AJAX POST調用,除了一件事以外,它工作正常。完成提交後,我收到成功/失敗消息,但當我再次單擊提交時,它會顯示另一個成功/失敗消息,而不會清除第一個消息。它不斷添加一個新的。我怎樣才能讓它爲每個提交顯示一個?JQuery AJAX POST消息問題

var pageUrl = '<%=ResolveUrl("~/Default.aspx")%>' 

     $(".ap-webmethod").click(function() { 

      if ($('#aspnetForm').valid()) { 
       $.ajax({ 
        type: "POST", 
        url: pageUrl + '/ProcessADRequest', 
        data: '{USER: "' + $("[id$='_userName']").text() + '", SSNID: "' + $("[id$='_empLast4Txt']").val() + '", DOB: "' + $("[id$='_empDobTxt']").val() + '"}', 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function (response) { $('.post-msg').append("<label>" + response.d + "</label>"); }, 
        failure: function (response) { $('.post-msg').append("<label>" + response.d + "</label>"); } 

       }); 


       return false; 
      } 
     }); 

回答

0

您使用append(...)哪裏,你需要使用val(...)

+0

我想通了。而不是追加,我不得不使用HTML。 Val沒有工作。 – Ram 2012-08-01 22:07:44

+0

啊是的!對不起,我誤解了你想要插入到'.post-msg'中的內容。 '.val()'用於設置像'input'這樣的元素的值,因爲你想插入一些'html'。我的錯誤 - 在我睡覺前爲我寫作答案提供了正確的答案! – 2012-08-02 04:01:11

0

您必須先刪除使用$('.post-msg').remove()的舊消息。我會這樣做:

 $.ajax({ 
       type: "POST", 
       url: pageUrl + '/ProcessADRequest', 
       data: '{USER: "' + $("[id$='_userName']").text() + '", SSNID: "' + $("[id$='_empLast4Txt']").val() + '", DOB: "' + $("[id$='_empDobTxt']").val() + '"}', 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (response) 
       { 
        $('.post-msg').remove('.msg'); 
        $('.post-msg').append("<label class='msg'>" + response.d + "</label>");   
       }, 
       failure: function (response) 
       { 
        $('.post-msg').remove('.msg'); 
        $('.post-msg').append("<label class='msg'>" + response.d + "</label>"); 
       } 

      });