无论我做什么,这个表格都不会通过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