2016-11-11 61 views
0

下面的代碼在單擊鏈接時執行ajax請求。它首先執行請求,然後遵循href中指定的鏈接。這在Chrome中運行良好,但在Firefox或Safari中,此類代碼無法以我未知的原因成功發佈數據。這兩種瀏覽器的解決方法是什麼?在鏈接上執行ajax點擊Firefox和Safari

$(".submit-link").click(function(e){ 



var value=$.trim($(".url-submit").val()); 
if(value.length>0){ 
    //initialize name and email 


$.ajax({ 
    url: "getPOST.php", 
    type: 'POST', 
    data: {"id":value,"name":nameValue, "email":emailValue}, 
    success: function(response) { 
console.log(response); //nothing gets printed in console when using Firefox or Safari, but in Chrome it works as expected 
    } 


//go to link in href now 
}); 
    }else{ 
//do something else 
e.preventDefault(); 
    } 
}); 
+0

沒有if語句,但有一個else語句。你能編輯你的腳本嗎? – Qsprec

+0

感謝您通知我。 – sanjihan

回答

0

只是讓代碼更簡單;

$(".submit-link").click(function (e) { 
     e.preventDefault(); 
     var value = $.trim($(".url-submit").val()); 
     if (value.length > 0) { 
      //initialize name and email 
      $.ajax({ 
       url: "getPOST.php", 
       type: 'POST', 
       data: { "id": value, "name": nameValue, "email": emailValue }, 
       success: function (response) { 
        console.log(response); 
        window.location = $('.submit-link').attr('href'); //Assumed your element that has submit-link class also contains the href attribute 
       } 
      }); 
     } 
    }); 

當你完成你的ajax請求後,現在你可以去鏈接了。

我在函數的開始處添加了e.preventDefault();。如果值長度大於「0」,則會發出ajax請求,並在ajax請求完成後將用戶重定向到鏈接。

另請檢查您的value以確保其長度大於「0」。