Как открыть несколько разных страниц по submit html-формы?

При отправке формы, если указан target = 'blank', открывается новая страница (назовем ее [1]). Если ее не закрыть, потом изменить данные в форме и снова отправить, то страница [1] перезагрузится. А нужно, чтобы она осталась как была, а открылась другая страница - [2], потом [3] и так далее. В общем, каждый раз при отправке формы должна открываться новая страница. 10 раз отправили - открылось 10 разных страниц.
Интересуют любые способы как такое можно сделать. Желательно простые, без кучи #893700кода. Но если таких не существует в природе, то сойдут любые.
  • Вопрос задан
  • 334 просмотра
Решения вопроса 1
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Просто перед отправкой меняем target у формы, который и отвечает за то, в окно с каким именем будет загружен ответ от сервера. Проще всего это сделать — добавлять timestamp (текущее время в миллисекундах).

$(document).on("submit", 'form', function (e) {
	this.target = 't' + Date.now();
});

На заметку: Атрибут target может быть изменён в любой кнопке с помощью formtarget. Также target используется в a и area.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
В window.open() можно использовать разные имена для окон.
Ответ написан
IonDen
@IonDen
JavaScript developer. IonDen.com
Ну например вот так: jsfiddle.net/IonDen/jo7wnL0b
var $form = $("#testForm"),
    urls = [
        "http://yandex.ru",
        "http://google.com",
        "http://yahoo.com",
        "http://amazon.com",
        "http://apple.com"
    ],
    iterator = 0;

$form.on("submit", function (event) {
    event.preventDefault();
    window.open(urls[iterator]);
    
    iterator++;
    if (iterator > urls.length - 1) {
        iterator = 0;
    }
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы