I was just wondering what the best way of looping through all the child elements of a form would be? My form contains both input and select elements.
At the moment I have:
success: function(data) {
$.each(data.details, function(datakey, datavalue) {
$('#new_user_form > input').each(function(key, value) {
if($(this).attr('id') == datakey) {
$(this).val(datavalue);
}
});
});
}
This only loops through the input elements of the form though and I want to include the select elements too:
I have tried:
$('#new_user_form > input, #new_user_form > select').each(function(key, value) {
but this doesn't work. Does anyone know why this would be happening? Thanks!
From the jQuery :input selector page:
This is the best choice.
pure JavaScript is not that difficult:
Note: because form.elements is a object for-in loop does not work as expected.
Answer found here (by Chris Pietschmann), documented here (W3S).
I'm using:
It Seems ugly, but to me it is still the better way to get all the elements with
jQuery
.I have found this simple jquery snippet, to be handy for choosing just the type of selectors I want to work with: