Il ne s'agit pas d'une solution unique, mais elle prend en compte les éléments suivants réel le premier champ de saisie de l'utilisateur (qu'il s'agisse de la balise <input /> ou <select>).
Il suffit de l'ajuster un peu plus pour obtenir ce dont vous avez besoin.
P.S : J'ai testé ce code qui fonctionne dans FireFox, Chrome et IE6.
function focusFirstFormField() {
try {
var selector = $("#formid");
if (selector.length >= 1 && selector[0] && selector[0].elements && selector[0].elements.length > 0) {
var elements = selector[0].elements;
var length = elements.length;
for (var i = 0; i < length; i++) {
var elem = elements[i];
var type = elem.type;
// ignore images, hidden fields, buttons, and submit-buttons
if (elem.style.display != "none" /* check for visible */ && type != "image" && type != "hidden" && type != "button" && type != "submit") {
elem.focus();
break;
}
}
}
}
catch(err) { /* ignore error if any */ }
}