2017-02-11 42 views
0

我想創建一個通用的功能,在jQuery中處理表單。當從我的rest API獲得400響應時,我無法訪問error子句中的表單對象。JQuery的Ajax錯誤響應無法獲取表單對象的錯誤塊

在下面的代碼e.target的形式爲對象,但在錯誤子句不能訪問電子,即使使用全局變量,(這是不是好辦法)不工作

$(document).ready(function(){ 
     $('form').validator().on('submit', function (e) { 
      if (e.isDefaultPrevented()) { 
       alert("Unexpected , contact admin");// handle the invalid form... 
      } else { 
       event.preventDefault(); 
       $.ajax({ 
        url: e.target.action, 
        method: e.target.method, 
        data:$(this).serialize(), 
        success: function(data) { 
         alert(JSON.stringify(data)); 
        }, 
        error: function(XMLHttpRequest, textStatus, errorThrown) { 
         if (XMLHttpRequest.status == 0) { 
          alert(' Check Your Network.'); 
         }else if (XMLHttpRequest.status == 404) { 
          alert('Requested URL not found.'); 
         }else if (XMLHttpRequest.status == 500) { 
          alert('Internel Server Error.'); 
         }else if (XMLHttpRequest.status == 400) {// Bad Request 
          $(e.target).append('<div class="alert alert-danger fade in alert-dismissable"><a href="#" class="close" data-dismiss="alert" aria-label="close" title="close">×</a><strong>Danger!</strong> This alert box indicates a dangerous or potentially negative action.</div>') 
         }else { 
          alert('Unknow Error.\n' + XMLHttpRequest.responseText); 
         }  
        } 
       });     

       return false; 
      } 
     }); 
    }) 

我得到了錯誤$(e.tartget)的錯誤塊,e未定義。

+0

創建重現問題 – charlietfl

回答

1

我不會這樣做的e.target ...檢查我的代碼片段, 如何解決它。

剛剛獲得的電流從對象通過$(本)

$(document).ready(function(){ 
 
     $('form').validator().on('submit', function (e) { 
 
      
 
      //Get the target form 
 
      var form = $(this); 
 
      
 
      if (e.isDefaultPrevented()) { 
 
       alert("Unexpected , contact admin");// handle the invalid form... 
 
      } else { 
 
       event.preventDefault(); 
 
       $.ajax({ 
 
        url: e.target.action, 
 
        method: e.target.method, 
 
        data:$(this).serialize(), 
 
        success: function(data) { 
 
         alert(JSON.stringify(data)); 
 
        }, 
 
        error: function(XMLHttpRequest, textStatus, errorThrown) { 
 
         if (XMLHttpRequest.status == 0) { 
 
          alert(' Check Your Network.'); 
 
         }else if (XMLHttpRequest.status == 404) { 
 
          alert('Requested URL not found.'); 
 
         }else if (XMLHttpRequest.status == 500) { 
 
          alert('Internel Server Error.'); 
 
         }else if (XMLHttpRequest.status == 400) {// Bad Request     
 
          //Append the Error to the targeted form 
 
          form.append('<div class="alert alert-danger fade in alert-dismissable"><a href="#" class="close" data-dismiss="alert" aria-label="close" title="close">×</a><strong>Danger!</strong> This alert box indicates a dangerous or potentially negative action.</div>') 
 
         }else { 
 
          alert('Unknow Error.\n' + XMLHttpRequest.responseText); 
 
         }  
 
        } 
 
       });     
 

 
       return false; 
 
      } 
 
     }); 
 
    })

+0

即使我能夠使用電子郵件,但越來越少的問題得到一個演示,但高於代碼工作像魅力..感謝只有我糾正的是我不得不prepend :)這是真正有幫助的。謝謝 – sudhanshu

+0

@sudhanshu歡迎:) –