無論我做什麼,這個表格都不會通過AJAX表現出來。有4個(在這種情況下是3個)不同的按鈕,用戶單擊以選擇一個大小,並在表單處理中使用此按鈕的值。它也將優雅降級(當它的工作原理)與#is_ajax隱藏字段..這個AJAX表單爲什麼不行?
HTML:
<form action="../bin/func/actions/add.action.php" method="post" id="addToCart">
<input type="hidden" name="is_ajax" value="false" id="is_ajax">
<input type="hidden" name="action" value="add">
<button class="add-size" value="S">S</button>
<span class="no-stock">M</span>
<button class="add-size" value="L">L</button>
<button class="add-size" value="XL">XL</button>
</form>
<div id="cart-success"></div>
的jQuery:
$(function() {
$(".add-size").click(function() {
// first off set hidden variable to TRUE so we know AJAX is playing ball
$("#is_ajax").val(true);
// serialise the form data
var dataString = 'size=' + $(this).val() + '&is_ajax=' + $("#is_ajax").val();
// slide down the small cart
$("#cart-expand").slideDown(200);
$("#cart-thumb a").toggle();
// let's do this..
$.ajax({
type: "POST",
url: "../bin/func/actions/add.action.php",
dataType: 'html',
data: dataString,
success: function(data){
$("#cart-success").html(data);
return false;
}
});
});
});
PHP(振作起來)
<?php
if($_POST['is_ajax'] == 'true')
echo 'true';
else
echo 'false';
?>
無論我做什麼默認表單動作似乎總是踢,並且頁面直接重定向到PHP頁面。如果我刪除了$ .ajax()部分,那麼剩下的部分就可以工作,看起來有些問題。
另外我不認爲這是因爲我沒有做$(「#form-ID」)。submit()...因爲我試過這種更傳統的方式,它仍然不起作用。如果我把
alert(dataString);
return false;
我創造一切的行爲,因爲它應該在datastring後,只有後,我們得到的AJAX位,這一切都錯了,它似乎輟學的jQuery的,只是做普通帖子提交到HTML中的地址。
幫助!謝謝。
bish bash bosh你是英雄。當它讓我愛你時,會給你一些愛。 – artparks 2011-05-12 13:32:58
是不是'event.preventDefault()'更好的方式來防止,以及默認行爲? – 2011-05-12 13:37:44
@ClementHerreman是的。 – Raynos 2011-05-12 13:38:58