使用jQuery或其他方法将表单结果转换为数组

时间:2013-03-26 11:24:23

标签: jquery forms jsp web

我正在尝试将表单结果传递给数组,以便下一个JSP页面可以处理它。

目前我有这段代码:

$("seguimiento").submit(function(){
        var labels = new Array();
        var val = new Array();
        $(":input").each(function(){
           if ($(this).val() >0) {
              labels.push($(this).attr('name'));
              val.push($(this).val());
           }
        });
        console.log("ya hemos rellenado los arrays");
       $.post("enviar.jsp", {"etiquetas": labels.join(','), "valores": val.join(',')});
     });

但它根本就没有用,我甚至没有在控制台上获得调试信息。

当然,我的表单有name="seguimiento"

2 个答案:

答案 0 :(得分:2)

只需serialize()serializeArray()

$.post("enviar.jsp",$("form").serialize(),function(d){});

获取控制台消息

$("form[name='seguimiento']").submit(function(e){
        e.preventDefault();
        var values = $(this).serializeArray();//this contains the array you want
        console.log(values);
        $.post('enviar.jsp',values,function(d){
             //d is the output of enviar.jsp
             console.log(d);
        });
     });

根据数据的不同,您可以考虑使用window.location重定向到enviar.jsp并将数据作为网址变量发送。

答案 1 :(得分:1)

你不能传递javascript数组,你可以使用join从数组中创建逗号分隔的字符串,而不是传递数组传递逗号分隔的字符串。

更改

$.post("enviar.jsp", {etiquetas: labels, valores: val});

$.post("enviar.jsp", {"etiquetas": labels.join(','), "valores": val.join(',')});