将表单元素聚合成对象?

时间:2010-06-05 22:45:41

标签: ajax jquery-plugins jquery

我正在尝试将表单元素聚合到对象中,然后通过ajax发送它是我开始使用的代码,但我无法弄清楚如何做其余的

$('.jcart').live('submit', function() {

});

更新1:

html表单

http://pasite.org/code/572

更新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;                                                  
}

2 个答案:

答案 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();
  }
});

这应该让你开始。