2012-06-01 53 views

回答

2
$.ajax({ 
     url  : $(this).attr('action'), 
     type : 'POST', 
     dataType: 'html', // you should set it 
          // if you response send html only 
     success : function(response){ 
      if($(response).filter('form').length) 
      { 
       alert("hii"); 
      } 
     } 
    }); 

根據最頂端的元素或某處更新:

 .... 
     dataType: 'html', 
     success : function(response){ 
      var container = $('<div/>').append(response); 
      if($(container).find('form').length) 
      { 
       alert("hii"); 
      } 
     } 
+0

@WebDeveloper你不設置'數據類型:html'。嘗試使用我的代碼,你會得到結果 – thecodeparadox

+0

PLZ看到我的更新的問題...形式可能是響應本身的第一/最頂層元素 – aWebDeveloper

+0

@WebDeveloper你好隊友,檢查你的更新並更新我的答案 – thecodeparadox

-1

'response'來自哪裏來自哪裏?它是什麼格式?

我送我回來瓦爾在JSON:

success: function(msg){ 
    var obj = jQuery.parseJSON(msg); 
    alert(obj.VARNAMEHERE); 
} 

或者你可以只檢查整個響應,而不是一個特定的變量。這會給你一個關於如何遍歷結果以找到你要找的東西的想法。

0
$.ajax({ 
    url  : $(this).attr('action'), 
    type : 'POST', 
    success : function(response){ 
     var hasForm = $("<div></div>").append(response).find("form").length > 0; 
     if(hasForm) 
     { 
      alert("hi"); 
     } 
    } 
}); 
0

dataType:'html'強制jQuery將響應視爲簡單的html。我正在使用「has」函數,它將匹配的元素集合減少爲僅包含某個表單的元素。

$.ajax({ 
     url  : $(this).attr('action'), 
     type : 'POST', 
     dataType : 'HTML', 
     success : function(response){ 
      $(response).has('form').doMoreWorkHere(); 
     } 
    }); 

或者,你可以寫矮

$.post($(this).attr('action'), {} 
     function(response){ 
     $(response).has('form').doMoreWorkHere(); 
     }, 'html'); 
相關問題