2017-02-15 10 views
0

На странице ejs на переднем конце у меня есть функция обработчика ajaxSubmit, подобная этому.Предотвратить возврат на клиентский ajaxSubmitHandler

$('#submitDetails').submit(function() { 
    $(this).ajaxSubmit({ 
     error: function(xhr) { 
     alert('Error: ' + xhr.status); 
     }, 
    success: function(response) { 

     if (response.responseCode == 1) { 
     alert("There is an error. Please try again!"); 
     } else { 
     //do nothing 
     } 
    } 
    }); 
    }; 

На стороне сервера у меня есть модуль маршрутизации nodejs с методами get и post. Для вышеуказанного нажмите кнопку «Отправить», я нахожу сообщение . Как ниже

route.post('/submit', (req, res, next) => { 

    if (dataRetrieved == 1 || dataRetrieved == 2) { 
      return res.json({"responseCode" : dataRetrieved}); 
    } else { 
     res.render('someOtherPage'); 
    } 

Когда приложение работает без какой-либо проблемы с сервером, выполняется блок else. Как вы могли видеть, я хочу отобразить другую страницу внутри блока else и не хочу возвращать res.json в обработчик ajaxSubmit. Это не позволяет мне это делать. Как только он видит res.render, он возвращается к этой функции submitHandler. Есть ли способ предотвратить это?

ответ

0

Я полностью избавился от обработчика ajaxSubmit. Я забираю ответ сервера внутри самого кода сервера. В интерфейсе я использую submitHandler вместо ajaxSubmit для отправки моей формы. Как ниже

$('#submitButtton').validate({ 
       submitHandler: function (form, event) { 
        //event.preventDefault(); 
        //return false; 
        form.submit(); 
       }