Как предотвратить перенаправление формы после отправки? - PullRequest
2 голосов
/ 14 апреля 2010

Я искал на сайте, и я нашел различные решения, большинство из которых предлагают использовать

return false;

Проблема в том, что я использую этот фрагмент кода для отправки формы:

$(function() {  
    $("#snd").click(function() {  
        var dendar = "http://" + $("#inpt").val() + ":" + $("#pwd").val() + "secretsite.lol/something.xml";
        $("#formen").attr("action", dendar);
        $("#formen").submit();
        alert(dendar);
        return false;
    });  
});

Предупреждение только для того, чтобы сообщить мне, что форма была отправлена ​​..

Спасибо, ребята!

Ответы [ 4 ]

4 голосов
/ 14 апреля 2010

Вы не можете предотвратить перенаправление, но можете отправить форму в (возможно скрытый) iframe, чтобы не покидать текущую страницу

Ajax было бы лучше, если сообщение находится на том же сервере, что и текущая страница, а вы не публикуете данные файла

4 голосов
/ 14 апреля 2010

Вы должны возвращать false в обработчике событий вызова submit (), а не в обработчике кликов.

$("#formen").attr("action", dendar); $("#formen").submit(
   function() { 
      return false;
   }
);

Как отмечают другие, это вообще не даст отправить форму. То, что вы хотите сделать, это собрать данные формы и отправить их с помощью Ajax-вызова.

$. Post (url, {var1: value1, var2: value2 etc ...});

3 голосов
/ 14 апреля 2010

Как насчет использования вызова AJAX с POST для обработчика данных? Это звучит как то, что вы хотите.

2 голосов
/ 14 апреля 2010

Использование jquery 1.4:

$("#formen").live("submit",function(e) {  
   e.preventDefault();
}

Это предотвратит фактическую отправку формы. Тогда вы можете делать с данными, которые должны были быть опубликованы (использовать ajax, напечатать что-нибудь на странице ...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...