我试图让所有表单元素数组,然后循环使用jquery的$ .each()函数,并在此函数内获取每个元素的ID和标题属性。jquery表单元素到数组
我试过serializeArray(),但我只能得到'name'和'value'属性。
我需要收集所有表单元素的东西,无论它是输入(无论类型),select,textarea,并且不管它是否具有值,都被选中或隐藏。可能类似于$('#form_id')。find('input select textarea'); ?
任何想法如何实现这一目标?
我试图让所有表单元素数组,然后循环使用jquery的$ .each()函数,并在此函数内获取每个元素的ID和标题属性。jquery表单元素到数组
我试过serializeArray(),但我只能得到'name'和'value'属性。
我需要收集所有表单元素的东西,无论它是输入(无论类型),select,textarea,并且不管它是否具有值,都被选中或隐藏。可能类似于$('#form_id')。find('input select textarea'); ?
任何想法如何实现这一目标?
用途:
$('#form_id')[0].elements
它会返回一个包含所有表单元素的NodeList。
jQuery(
function($)
{
$.each($('#form_id')[0].elements,
function(i,o)
{
var _this=$(o);
alert('id:'+_this.attr('id')+'\ntitle:'+_this.attr('title'));
})
}
);
<编辑>
请注意:元素 - collecttion也可以包含像字段集或对象元素,请参见:http://www.w3.org/TR/html5/forms.html#category-listed
< /编辑>
太棒了!非常好 - 非常感谢! – user398341
请参阅我的编辑,这可能很重要。 –
这很好 - 这只是为了初始验证(客户端) - 服务器端对所有提交的变量进行了更深入的过滤 – user398341
你可以得到与:input
伪类的所有表单元素:
var elems = $('#form_id').find(':input'); // changed this line
是不是只会收集'输入'元素? – user398341
不,这是一个伪类,它匹配所有表单元素(input,select,textarea,everything) – arnaud576875
与上述建议($('#form_id')[0] .elements)相比,它在性能方面如何? – user398341
我认为这可能以您想要的方式工作:
$('#form_id').children('input, select, textarea')
这将仅匹配直接的孩子 – arnaud576875
使用'find'而不是'children' – Alp
*也许类似'$('#form_id')。find('input select textarea');'?* ...继续尝试。 –