我正在尝试将表单结果传递给数组,以便下一个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"
答案 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(',')});