- PR -

SetFocusの記述方法について

1
投稿者投稿内容
Juni
常連さん
会議室デビュー日: 2004/02/05
投稿数: 25
お住まい・勤務地: 兵庫県
投稿日時: 2004-02-13 18:29
たびたび質問させていただきます。

Form上にTextBoxがいくつかあり、自動的にFocusをSetするProgramを作成しています。
パラメータで渡ってきた値によってSetするFocusを変えたいのですが、
記述の方法がよくわかりません。

通常だと
document.Form1.TextBox1.focus()
と書けば良いと思いますが、

SetFocus(TextBox1);

function SetFocus(str)
{
//ここにSetFocusを記述する
}
というような場合はどのように記述すればよいのでしょうか?

単純に
document.Form1.str.focus()
とか
str.focus()
と記述するだけではダメとは思うのですが・・・。

まだまだ初心者で現在猛勉強中です。
どなたかお教えいただければと思います。

よろしくお願いいたします。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-02-13 18:35
引用:


function SetFocus(str)
{
//ここにSetFocusを記述する
}
というような場合はどのように記述すればよいのでしょうか?

単純に
document.Form1.str.focus()
とか
str.focus()
と記述するだけではダメとは思うのですが・・・。

まだまだ初心者で現在猛勉強中です。
どなたかお教えいただければと思います。

よろしくお願いいたします。


NAL-6295です。

str.focus()でよかったりして。つか、良いです。

#つか、試してみたらいいのでは?
Juni
常連さん
会議室デビュー日: 2004/02/05
投稿数: 25
お住まい・勤務地: 兵庫県
投稿日時: 2004-02-13 18:43
NAL-6295さん、ご返事ありがとうございます。

[/quote]
NAL-6295です。

str.focus()でよかったりして。つか、良いです。

#つか、試してみたらいいのでは?
[/quote]

もちろん、投稿する前に試してはいます。
ですが、実行してみるとFocusが戻って来ずに実行中の
ままで固まってしまいます。

私の記述の仕方が悪いのでしょうか?
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-02-13 18:50
コード:

<HTML>
<HEAD>
<script language="javascript">
function SetFocus(str)
{
str.focus();
}

</script>
</HEAD>
<body onload="SetFocus(document.Form1.TextBox2);">
<form name="Form1" method="post" action="WebForm1.aspx" id="Form1">
<input name="TextBox1" type="text" />
<input name="TextBox2" type="text" />
</form>
</body>
</HTML>



こんな感じで実行できます。

[ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-02-13 18:51 ]
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-13 18:55
もしかして「指定されたNAMEのコントロールにフォーカスを移動する」ですか?
コード:


function SetFocus( str )
{
obj = document.all.item( str );
if( obj != null )
obj.focus();
}


onload="SetFocus('TextBox1')"




[ メッセージ編集済み 編集者: ゆうじゅん 編集日時 2004-02-13 18:56 ]
Juni
常連さん
会議室デビュー日: 2004/02/05
投稿数: 25
お住まい・勤務地: 兵庫県
投稿日時: 2004-02-13 18:59
NAL-6295さん、ご返事ありがとうございます。

NAL-6295さんのSourceを参考にして修正すると
うまく実行できました。

パラメータで送る値を
SetFocus(TextBox1);
ではなく
SetFocus(document.Form1.TextBox1);
としなくてはいけなかったんですね。

勉強になりました。ありがとうございました。
Juni
常連さん
会議室デビュー日: 2004/02/05
投稿数: 25
お住まい・勤務地: 兵庫県
投稿日時: 2004-02-13 19:12
ゆうじゅんさん、ご返事ありがとうございます。

引用:

ゆうじゅんさんの書き込み (2004-02-13 18:55) より:
もしかして「指定されたNAMEのコントロールにフォーカスを移動する」ですか?




はい、そうでした。
直接指定するのはわかったのですが、
パラメータを使用したときの記述がわからなかったのです。

でも解決しました。

ありがとうございます。
Juni
常連さん
会議室デビュー日: 2004/02/05
投稿数: 25
お住まい・勤務地: 兵庫県
投稿日時: 2004-02-16 14:42
たびたびお世話になります。

先日の件(「指定されたNAMEのコントロールにフォーカスを移動する」)
というのはうまくいったのですが、「指定されたNAMEの次のコントロールに
フォーカスを移動する」というのはどうすれば良いのでしょうか」?

コード:
--------------------------------------------------------------------------------


function SetFocus( str )
{
obj = document.all.item( str );
if( obj != null )
obj.focus();
}


onload="SetFocus('TextBox1')"

の場合、strではなくてstrの次のテキストボックス(例えばTextBox2)に
フォーカスを移動したい場合はどのようにすればよいのでしょうか?

いろいろ試してみましたがうまくいかないので
どなたかご教授いただければと思います。

よろしくお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)