- PR -

文字列全体にフォーカスをあてたい

1
投稿者投稿内容
ホーガン
常連さん
会議室デビュー日: 2008/02/18
投稿数: 42
投稿日時: 2008-03-11 13:10
以下のコードでフォーカスをあてています。


<body onLoad="document.mainFORM.incode.focus()">


<input name="incode" type="text" value="2,222" size="1.5" maxlength="4" />');


文字列全体にフォーカスをあてたいのですが、
I2,222というように、先頭にカーソルがきてしまいます。
これだと、一度deleteキー等で文字を削除してからでないと
入力できないです。
文字列全体にフォーカスをあてる方法をご教示願えればと書き込みました。
どうか、よろしくお願いします。
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2008-03-11 13:26
こういうこと?

× focus
○ select

#value と maxlength がおかしいけど・・・
ホーガン
常連さん
会議室デビュー日: 2008/02/18
投稿数: 42
投稿日時: 2008-03-11 13:52
−−−−−−−−−−−−−−−
こういうこと?

× focus
○ select
−−−−−−−−−−−−
すいません。○ selectというのはselectタグという
ことでしょうか。

tabキーで項目間遷移すると、その項目全体にフォーカスが
あたります。(1111という入力値があったとしたら1111全てが反転します。)
ですが、focus()を使用すると全てが反転しないので、どうにかできないかという
ご相談でした。






−−−−−−−−−−−−−−−−−−−−−−
#value と maxlength がおかしいけど・・・
−−−−−−−−−−−−−−−−−−−−−−
ご指摘の通りです。

rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-03-11 14:04
http://www.tohoho-web.com/js/form.htm#ElmText

引用:

◆ window.document.form.text.select() (e3/N2)
入力フィールド内の文字列を選択状態にします。

ホーガン
常連さん
会議室デビュー日: 2008/02/18
投稿数: 42
投稿日時: 2008-03-11 14:18
ひろれいさん、rainさんありがとうございます。
focusをselectに変更するとうまく行きました。
ですが、もう1つのパターンが上手くいきません。

javaScript内で以下の記述をしています。
incodeという入力フィールドを20行表示します。
矢印キーで上下の入力欄に遷移させます。

parent.detail.document.write('<table border="4" cellpadding="4" cellspacing="2">');
for(i=2 ;i<20 ;i++){
 parent.detail.document.write('<td width="30" height="20" style="font- size:12px" align="right" ><input name="incode'+i+'" type="text" value="1234" size="1.5" maxlength="4" onkeydown="javascript:keydown('+i+')"/>');
 parent.detail.document.write('</td>');

}


function keydown(gyou)
{
//↑キー(38),↓キー(40)以外なら無視
if ((event.keyCode==38) || (event.keyCode==40)) {
// ↓キー(40)の場合
if (event.keyCode==40) {
   line = gyou+1;
} else {
//↑キー(38)の場合
if (gyou ==2) {
line = gyou;
} else {
line = gyou-1;
}
}
var element = document.getElementById("incode"+line);
element.select();
}
}


keydownの処理の中をelement.select();に変えてみたのですが
1234Iと最後にカーソルが移るだけで全体にはフォーカスが
あたりませんでした。教えて頂いたことと同じことだと思うのですが
何がいけないのでしょうか。
ホーガン
常連さん
会議室デビュー日: 2008/02/18
投稿数: 42
投稿日時: 2008-03-11 14:31
自己レスです。

onfocus="this.select()"をいれることにより
解決できました。

どうもすいませんでした。
末記人
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 233
お住まい・勤務地: あわにこ
投稿日時: 2008-03-11 14:46
こんにちは

コード:

onkeydown="javascript:keydown('+i+');


の部分を
コード:

onkeydown="javascript:keydown('+i+'); return false;


にして後続のイベントに渡さないようにするか

コード:

onkeyup="javascript:keydown('+i+');


にして keyupイベントで処理してみたらどうですか?

おそらくkeydownイベントでfocusが移動しているけどその後 keyupイベントが
発生して選択状態が解除されているんじゃないですかね?

推測ですが...

[ メッセージ編集済み 編集者: 末記人 編集日時 2008-03-11 14:47 ]
1

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