我正在尝试遍历所有表单元素。这是我的代码:
$.each($(this).serializeArray(), function(fsai,fsae) {
alert($(fsae).attr('name'));
});
效果很好;我得到所有字段名称的所有警报。但我需要获得身份证。所以我这样做:
$.each($(this).serializeArray(), function(fsai,fsae) {
alert($(fsae).attr('id'));
});
这个永远不会奏效。我得到的只是空警。为什么呢?
PS:所有元素都有有效的name和id属性,并带有有效值。
这是标记:
<form>
<input id="e90" type="text" placeholder="Name" name="name" value="">
<textarea placeholder="Comments" id="e91" name="comments" type="" value=""></textarea>
<input type="submit" id="e92" name="submit" value="Submit">
</form>
答案 0 :(得分:1)
jQuery serializeArray 将返回名称和值对,因此您无法访问ID。检查Manual。
答案 1 :(得分:0)
尝试使用".prop()"
代替".attr()"
问候
答案 2 :(得分:0)
如果元素存在Id属性,则可以直接访问id属性,如
$.each($(this).serializeArray(), function(fsai,fsae) {
alert($(fsae).id);
});
答案 3 :(得分:0)
试试这个:
var tes = $('form');
var children = tes.children();
$(children).each(function ()
{
var TAG = $(this).get(0).tagName;
if(TAG != "DIV" && TAG != "SPAN")
{
alert($(this).attr("id"));
alert($(this).attr("name"));
//u can push each element atrribute like name or id here to an array.
}
});
请注意,这只是解决方法,但它正在运行,这是工作示例HERE
就像@REX说的那样,如果你的表单有一个ID,那么你的文件可能会同时包含多个表格。
答案 4 :(得分:0)
正如@Sadikhasan所说,jQuery serializeArray将返回名称和值对,因此您无法访问id。
所以你试试这个
//Get all input elements in form
$("form :input").each(function () {
alert($(this).attr("id"));
});
//It will be better if form has some id or class