拡張 autofocus
画面描画時に以下優先順位で入力フィールドへ自動フォーカス。非表示状態の要素は対象外。
- エラークラスを持つ入力フィールド
- autofocus属性を持つ入力フィールド
- DOM上の先頭の入力フィールド
//先頭の入力フィールドに対し自動フォーカス var focus = function( expr , autofocus){ var ret = false; $(expr).each(function(){ var target = $(this); if (!target.is(':hidden') && ( (!autofocus && !(/button|submit/.test(target.attr('type')))) || (autofocus && target.attr('autofocus') == '') )) { ret = true; target.focus(); return false; } }); return ret; } var expr = 'input,textarea,select'; var errExpr = (expr).split(',').join('.error,') + '.error'; if (!focus(errExpr)){ if (!focus(expr, true)){ focus(expr); } }