Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

submitボタンにフォーカスを当てたい

初めまして。マツイと申します。

宜しくお願いします。

画面遷移後の初期状態で
submitボタンに対してフォーカスを
当てる事は可能でしょうか。

入力フォームにフォーカスを当てる方法と同様に、
JavaScriptの記述で下記のように記述したところ、
そのようなオブジェクトは存在しない、と
警告ダイアログが表示されました。

 document.フォーム名.submit.focus();

どなたかご存知の方がいましたら、
アドバイスをお願いします。 

3

回答

13654

閲覧

3件の回答

評価

0

下記テストコードで試したところ、うまく
いきましたよ。

<html>
<head>
<SCRIPT language="javascript">
<!--
function window_OnLoad() {
    document.frm.submit01.focus();
}
//-->
</SCRIPT></head>
<body onload="window_OnLoad()">
<form name="frm">
    <input type="text" name="test01" size="25" maxlength="255" value="">
    <br>
    <input type="submit" name="submit01" value="サブミット">
</form>
</body>
</html>

評価

0

思いっきりJavaScriptの話な気がしないでもないですが……

document.getElementById("submitボタンのID").focus();
とかじゃだめでしょうか?
試していないのでちょっと保証できませんが。

評価

0

きっとサーブレットの出力がどーのこーのという
背景が裏にあるのでしょう、きっと。
だから、Java <> JavaScript ところは大目に見て
あげましょう。

いっそのこと、この掲示板も、Java と名前が付く
ものは全てOKにしたら。
Java
JavaScript
JScript
J#(番外)


document.getElementById("submit の ID名").focus();
又は、
document.forms[n].elements["submit の名前 or ID名"].focus(); //[n] の n は FORM の定義順 1個しかないなら 0 を指定
又は、
document.getElementsByName("submit の 名前").focus(); //Elements と複数形なのに、IE は1個しかないときは配列を返さないので注意
又は、
var f = document.forms[n];
for (var i=0;i < f.elements.length;i++) {
   if (f.elements[i].type &&
       f.elements[i].type == "submit") {
       f.elements[i].focus();
       break;
   }
}
submit が複数有り、name や id で違う場合や
form が複数有り、どのフォームなのか判断難しい
場合等に上記のように、DOMノードを総なめにして
探します。上3つのやり方でほとんど間に合います。



質問から6ヶ月以上経過しているので、回答を書き込むことはできません。