Jquery 我们可以使用序列化数组从具有相同名称的多个元素中获取id吗

Jquery 我们可以使用序列化数组从具有相同名称的多个元素中获取id吗,jquery,forms,serializearray,Jquery,Forms,Serializearray,我有一个名称相同但id不同的表单。我可以序列化数组,但无法获取当前id <form action="test.php" id="loginform" name="loginform" method="post"> <input name="title[]" id="title1" type="text" value="" tabindex="1" /> <input name="title[]" id="title2" type="text" v

我有一个名称相同但id不同的表单。我可以序列化数组,但无法获取当前id

<form action="test.php" id="loginform" name="loginform" method="post">
     <input name="title[]" id="title1" type="text" value="" tabindex="1" />
     <input name="title[]" id="title2" type="text" value="" tabindex="2" />
     <input  name="title[]" id="title3" type="text" value="" tabindex="3" />
     <input type="submit" name="submit" value="Submit" id="submit" tabindex="4" />
 </form>

$('#loginform').bind('submit', function() { 
    var elements = $(this).serializeArray();
    $.each(elements, function(i, element) {
        var temp = $('#' + element['name']);
       var name = this.name; alert(name);
 var id = $(this).attr("id");alert(id); 
        (temp.val() == '') ? temp.css({'background': '#FFC4C4', 'border': '1px solid #F00'}) : temp.removeClass('hightlight');
    });
    return false;
});

$('#loginform').bind('submit',function(){
var elements=$(this.serializeArray();
$。每个(元素,函数(i,元素){
var temp=$('#'+元素['name']);
变量名称=this.name;警报(名称);
var id=$(this.attr(“id”);警报(id);
(temp.val()='')temp.css({'background':'FFC4C4','border':'1px solid#F00}):temp.removeClass('hightlight');
});
返回false;
});
我得到的是名字,但不是身份证。有人能查一下这个

.serializeArray()
将只返回每个对象的名称和值。因此,对集合进行迭代不会得到值

将一组表单元素编码为 名称和值的数组

我想我理解你的问题,但我不是100%肯定。如果我的理解是正确的,那么您正在尝试迭代输入并获取每个输入的ID属性

如果这就是你需要做的,有一个更简单的方法来实现它

$('loginform')。提交(函数(ev){
$('input[type=text]',this)。每个(函数(索引,元素){
警报($(元素).attr('id'));
});
ev.preventDefault();
});
因此,快速细分:

  • 首先,
    $('input[type=text]',this)
    从我们提交的表单中获取所有文本输入
  • 然后,我们使用
    .each()
    遍历它们
  • 对于每个
    元素
    ,我们使用
    .attr()
    获取ID,并将其传递给
    alert()
    以显示给用户

我知道。serializeArray()将只返回名称和值对,但这是指当前元素。因此,我们可以从中检索id吗?