2016-11-11 2 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».

Смежные вопросы