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]。您的代码对我有效,但我无法添加或合并该。。请