Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery序列化收集按名称分组值的多个表单_Javascript_Jquery_Each_Multiple Forms_Serializearray - Fatal编程技术网

Javascript jquery序列化收集按名称分组值的多个表单

Javascript jquery序列化收集按名称分组值的多个表单,javascript,jquery,each,multiple-forms,serializearray,Javascript,Jquery,Each,Multiple Forms,Serializearray,如何从输入中收集多个值,并将输出分组为按名称组合值的字符串 例如: 如何获得输出将是字符串或类似的内容 //字段名称:[值] 我试着这样做: $('.submit')。单击(函数(){ var InputCollect=$('.register').find(':input'); $(InputCollect).each(函数(){ names=$(this.attr('name'); values=$(this.attr('value'); //输出将是字符串或类似的内容: //全名:jh

如何从输入中收集多个值,并将输出分组为按名称组合值的字符串

例如:


如何获得输出将是字符串或类似的内容

//字段名称:[值]

我试着这样做:

$('.submit')。单击(函数(){
var InputCollect=$('.register').find(':input');
$(InputCollect).each(函数(){
names=$(this.attr('name');
values=$(this.attr('value');
//输出将是字符串或类似的内容:
//全名:jhon doe
//地址:某街道
//性别:男
//hobies:足球、篮球(组合多个值:如果选中则不选择)
});
});
我不知道如何按名称将多个值分组

实现该输出的最佳方法是什么。。使用jQuery序列化或每个 功能?? 谢谢关注


您可以找到带有
:checked
的复选框。然后,可以将它们放入键值存储区,其中键是复选框的名称,值是选定复选框的数组:

$('.submit')。单击(函数(){
var InputCollect=$('.register').find(':input');
设form={}
$('input[type=text],textarea,input[type=radio]:选中','.register')。每个(函数(){
常量名称=$(this.attr('name');
常量值=$(this.val();
如果(value.trim()!=''){
形式[名称]=值;
}
});
$('input[type=checkbox]:选中','.register')。每个(函数(){
常量名称=$(this.attr('name');
常量值=$(this.val();
如果(形式[名称]==未定义){
形式[名称]=[值];
}否则{
表单[名称]。推送(值);
}
});
控制台日志(表格);
});
在这里,我不得不将逻辑拆分为两个回调,因为处理文本输入和无线电与处理复选框不同,尽管您仍然可以在单个回调中合并它们(如果需要)


太好了,它可以工作,但我尝试映射控制台中仍然显示的空名称字段属性,但是如果有多个同名值,那么您的代码可以工作,先生,但是我在那里演示的表单如果这些动态表单,在另一个问题中,您能否给出serializeArray方法..的示例。。?感谢您的帮助,先生..仍然在console.log事件中显示name属性,值为空..要跳过未初始化的字段,您只需查看值是否与
'
不同,我编辑了代码以反映这一点。我不确定seralizeArray,因为我以前没有使用过它,我将在下午研究它。。我从JS fiddle更新了你的代码,遇到了一些问题,你能告诉我如何合并一个更简单的值[type]。您的代码对我有效,但我无法添加或合并该。。请