Узел /Javascript: перенаправление после подтверждения

Я использую фреймворк под названием PartialJS, который следует за архитектурой MVC для создания webApp, который будет проверять ввод пользователя и делать запрос к API и отображать ответ API.

Я не уверен, как перенаправить пользователя на отображаемую страницу после завершения проверки и завершения вызова API. Где должны быть перенаправлены страницы и вызовы API?

Здесь краткая разбивка того, что пользователь увидит с метками "bullet", обозначающими, что происходит в бэкэнд:

  1. Пользователь представил форму и заполняет информацию
    • export.onValidation(), вызываемый через сериализованный JSON, чтобы проверить, что все поля заполнены точно (срабатывает кнопкой), без обновления страницы.
    • Вызов API выполняется с пользовательской информацией, не возвращается до получения ответа и анализа
  2. Форма, обработанная с помощью декодированного ответа JSON от внешнего API

Я попытался использовать это на странице "view.html", но перенаправляет страницу перед проверкой.

<buttononclick="window.location='http: www.calicoder.com="" results';"="">Submit 

</buttononclick="window.location='http:>

Вот что происходит в конце "controller.js".

function json_form() {
var self = this;
var error = self.validate(self.post, ['intersection', 'hours', 'minutes', 'phone'])

if (error.hasError()) {
 self.json(error);
 return;
}

// save to database
var db = self.database('forms');
db.insert(self.post); 
self.json({ r: true });

}

function get_routes(hours, minutes, intersection) {

//Следующий код вызывает вызов, который возвращает массив с данными, которые будут отображаться другим контроллером представления. var stops = this.module('cumtd'). GetStopsBySearch ('springfied busey'); }

Спасибо за прочтение! Извините за то, что я запутался, я новичок в программировании JS и Node. :(

1 ответ

У вас проблема с JavaScript-скриптом, решение:

HTML:

<button>Submit</button>

JavaScript:

$(document).ready(function() {
 $('button').bind('click', function() {
 $.post('/', $('#f').serialize(), function(d) {
 var err = $('#error');

 if (d instanceof Array) {
 err.empty();
 d.forEach(function(o) {
 err.append('<div>' + o.error + '</div>');
 });
 err.show();
 return;
 };

 $('#f').trigger('reset');
 err.empty();
 err.show().html('SUCCESS! Please wait while the request is being made');

 // HERE REDIRECT:
 setTimeout(function() {
 window.location.href = 'http://www.CaliCoder.com/results';
 }, 3000);
 });
 });
});

licensed under cc by-sa 3.0 with attribution.