我試圖讓所有表單元素數組,然後循環使用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');'?* ...繼續嘗試。 –