我正在尝试将表单元素聚合到对象中,然后通过ajax发送它是我开始使用的代码,但我无法弄清楚如何做其余的
$('.jcart').live('submit', function() {
});
更新1:
html表单
更新2:
我已成功使用ajax提交表单,但在提交
后仍会刷新页面这就是我所做的
function adding(form){
$( "form.jcart" ).livequery('submit', function() {var b=$(this).find('input[name=<?php echo $jcart['item_id']?>]').val();var c=$(this).find('input[name=<?php echo $jcart['item_price']?>]').val();var d=$(this).find('input[name=<?php echo $jcart['item_name']?>]').val();var e=$(this).find('input[name=<?php echo $jcart['item_qty']?>]').val();var f=$(this).find('input[name=<?php echo $jcart['item_add']?>]').val();$.post('<?php echo $jcart['path'];?>jcart-relay.php',{"<?php echo $jcart['item_id']?>":b,"<?php echo $jcart['item_price']?>":c,"<?php echo $jcart['item_name']?>":d,"<?php echo $jcart['item_qty']?>":e,"<?php echo $jcart['item_add']?>":f}
});
return false;
}
答案 0 :(得分:3)
jQuery有一个名为.serialize()的方法,它可以获取所有表单元素并将它们放入一个数组中,以满足您的目的。没有看到你的HTML,我们真的不能告诉你更多。
http://api.jquery.com/serialize/
这样的事可能有用:
$('.jcart').submit(function() {
$.ajax({
url : form.php,
type : "POST",
data : $(this).serialize(),
});
});
显然,完整功能需要更多功能,但这应该让你开始。
答案 1 :(得分:0)
根据您需要的值的数量(以及是否有像单选按钮这样的东西),您可以从:input
选择器开始抓取元素。假设.jcart
是您的表单或容器,如下所示:
var data = {};
$('.jcart').find(':input').each(function (i, field) {
if ($(field).is('input:checkbox') {
if (field.checked) {
data[field.name] = true;
} else {
data[field.name] = false;
}
} else {
data[field.name] = $(field).val();
}
});
这应该让你开始。