jquery 未記入のinputもしくはtextareaにフォーカス


formの入力欄で、未記入のinputよりも上部に未記入のtextareaがない場合は、最初の未記入のinputにフォーカスがあたる。しかし未記入のinputよりも上部に未記入のtextareaがある場合は、最初の未記入のtextareaにフォーカスがあたる。

以下のように書く

// 最初の未記入の input 要素を取得
var $firstEmptyInput = $(“form input:not([value]):first”);

// 最初の未記入の input 要素よりも上部に未記入の textarea 要素があるかどうかを判定
if ($firstEmptyInput.prevAll(“textarea:not([value])”).length > 0) {
// 最初の未記入の textarea 要素にフォーカスを設定
$(“form textarea:not([value]):first”).focus();
} else {
// 最初の未記入の input 要素にフォーカスを設定
$firstEmptyInput.focus();
}