Jquery 我们可以使用序列化数组从具有相同名称的多个元素中获取id吗
我有一个名称相同但id不同的表单。我可以序列化数组,但无法获取当前idJquery 我们可以使用序列化数组从具有相同名称的多个元素中获取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
<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()
- 对于每个
,我们使用元素
获取ID,并将其传递给.attr()
以显示给用户alert()