Следующий код предназначен для выполнения чисто POST-запроса ajax, вместо этого он выполняет POST через ajax, а затем браузер переходит к ответу.
HTML ...
<div id="bin">
<form class="add" method="post" action="/bin/add/">
<p>I'm interested! Save for later.</p>
<input type="hidden" name="product_id" value="23423">
<input type="submit" value="Save">
</form>
<form style="display:none;" class="remove" method="post" action="/bin/remove/">
<p>I changed my mind--I'm not interested.</p>
<input type="hidden" name="product_id" value="23423">
<input type="submit" value="Unsave">
</form>
</div>
JQuery ...
$('#bin form').submit(function() {
$.post($(this).attr('action'),{
success: function(data) { $(this).hide().siblings('form').show() },
data: $(this).serialize()
});
return false;
})
Насколько я понимаю, строка return false;
должна означать, что независимо от того, какие-либо вызовы функции отправки или нажатия на кнопку "Отправить"Кнопка или нажатие Enter означает, что моя функция будет выполнена, и браузер не перейдет к /bin/add
или /bin/remove
.Но по какой-то причине браузер меняет страницы.
Есть идеи, что я здесь не так делаю?Благодаря.