フォーカス設定について教えてください。
フォーカス設定について教えてください。
テキストボックスに入力エラーがあった場合(数値チェックなど)、以下のようなスクリプトでメッセージボックスを出し、エラー項目にフォーカスをあて、エラー項目の背景色を変更しています。
通常は、問題なく動作するのですが、テキストボックス→セレクトボックスという順番にフォーム部品が並んでいると、エラー項目のテキストボックスと次の部品であるセレクトボックスの両方にフォーカスが当たってしまいます。
テキストボックスのみにフォーカスを当てたいのですか、どなたか理由と解決策を教えていただけないでしょうか。
よろしくお願いします。
//===================================================
// クライアントエラー時の処理
// 引数 1. oItem : エラー項目オブジェクト
//===================================================
function onErrorItem(oItem) {
var sErrCls = "";
var sErrCls = oItem.className;
if ( sErrCls.substr(0, 3) != "err" ) {
sErrCls = "err" + sErrCls;
}
//項目背景色反転&前回分項目背景色反転解除
fncObjTurnOver(oItem, sErrCls);
//フォーカス設定
if ((oItem.type == "text") || (oItem.type == "password")) {
//テキストボックスの場合
oItem.select();
}else{
oItem.focus();
}
}
/*エラーチェック*/
function fnCheckNum(object,msgID,msgParam){
if(fncIsNum(object) <0){
//メッセージボックスを出す
fncMsgPopUp(msgID, msgParam, null);
onErrorItem(object);
}
}
<呼び出し元>
<input type="text" size="3" name="hospCount" maxlength="2" class="InputNum" onblur="fnCheckNum(this,'E0004','病院数');">
お礼
おお!!できました。ありがとうございます。