onload時にテキストボックス(name="text_box")にフォーカスが当たるようにしています。
onload時にtext_boxに値が入っていれば、カーソルは右寄せにするには
どうしたらいいのでしょうか。

selectで選択状態にして逃げてみたのですが
BackSpaceキーでtext_boxの値を修正する為、右寄せにした方が
都合がいいので、できるなら右寄せ方法を取りたいと思います。

text_boxの中身の文字数を数えて、その最後の文字数分の場所に
カーソルを持っていこう、と考えてみましたが
手間がかかるのと(ってオイ)カーソルの位置指定がわからず、撃沈でした。

onload時に「右寄せ!」という具合に、楽に指定する方法はないものでしょうか?
どなたかご存知の方、教えてください。

A 回答 (2件)

Internet Explorer4以上でしか動かないと思いますが、


TextRangeオブジェクトを作って、動作させることはできます。
でも、全然ラクじゃないです。

var target = document.form[0].text_box;
var txtRange = target.createTextRange();
txtRange.move( 'character', target.value.length );
txtRange.select();

みたいな感じかな...

この回答への補足

(補足とお礼を書くところ間違えました)
ありがとうございます。
misokaさんのおかげで自分関数(笑)できました。

機会がありましたらまたよろしくお願いします(ペコリ)。

補足日時:2002/02/25 11:32
    • good
    • 0
この回答へのお礼

misokaさん、回答ありがとうございます。
varというとJavaScript内の関数でしょうか?
ヒントを頂いたので、移動関数を作ってみます。
(また質問するかもしれませんが)

機会がありましたらまた教えてください(ペコリ)。

お礼日時:2002/02/25 11:05

テキストボックス内でのカーソル位置を指定することは、できなかったと思います。



で、代替策ですが、IE5.5/NN6.2 では「フォーカスを当てた後に文字列を入れる」ことで、右寄せにできました。(NN4.7 ではダメでした。。)

function my_onLoad() {
  with (document.フォーム名) {
    text_box.focus();
    text_box.value = text_box.value;
  }
}

万能な方法ではありませんが、参考になれば。
    • good
    • 0
この回答へのお礼

leaz024さん、早速の回答ありがとうございます。
返事が遅くなってすみません。

onloadでフォーカスを当てていれば、どういう風に遷移してきても
必ず文字列を入れる前にフォーカスが当たった状態ですよね?
(何か日本語が変だ)

なのにどうしても左寄せになってしまうんです。

submitで自画面に遷移後にこの状態にしたい、というのが悪いのでしょうか?
ちなみにソース(抜粋)は

**********************************************************************
<BODY onload=test.text_box.focus()>

<%
    '=============================================================
    ' パラメータよりtext_boxの入力値を取得
    '=============================================================
      strtext_boxNo= Request.Form("text_box")
%>

<form name="test" action="test.asp?Mode=<% = Server.URLEncode(1) %>" target="_self" method="post" onsubmit="return Ftext_boxChk();">

<input type="text" name="text_box" value="<%=strtext_boxNo%>" size=7 maxlength=6 onKeyPress="FKeysPress()" style="ime-mode: inactive">

**********************************************************************

<input type>前でもう一度フォーカスを当てるとエラーが出てしまって・・・。
もうちょっとソースを読んで考えてみます。

『フォーカスを当てた後に文字列を入れると右寄せになる』というのは
大変ありがたい情報でした。

また機会がありましたらよろしくお願いします(ペコリ)。

お礼日時:2002/02/25 10:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qツールバーがカーソルを合わせないと出ない

サイトを見ている際、上部にツールバーが出ていたのですが、今ではそこにカーソルを合わせないと出なくなってしまいました。
下部のツールバー?も以前より小さくなってしまいました。
元に戻したいのですが、どうしたらよいでしょう?

Aベストアンサー

F11キーを押してください。

Q と window.onload

JavaScriptのonload処理についての質問です。

現在Java、JSP、JavaScript等でWebアプリケーションを作成しているのですが、
bodyタグ中のonloadに記載したファンクションが時々呼ばれないという問題が起きています。
(こんな感じで記述
 <body onload="hoge();hogehoge();">
 hogehoge()がたまに呼ばれないことがある・・・)

これを回避する方法として、「onload処理をwindow.onloadに記述すれば良い」
という話を聞きました。
(こんな感じで記述
 <script>
   window.onload = function(){ hoge();hogehoge(); }
 </script>


「bodyタグ中に記述するとたまに呼ばれないものが、window.onloadに記述すると確実に呼ばれる」
なんてことがあるのでしょうか?
「2つめのファンクションが呼ばれない」という現象がたまにしか発生しないので、
window.onloadに記述する方法で確実に呼ばれるようになったという保証がとれません。
知識として知っている方がいれば是非教えていただきたいです。
よろしくお願い致します。

※ブラウザはIEを使用
 バージョンは IE → 6.0
     JavaScript → 1.1 です。
 

JavaScriptのonload処理についての質問です。

現在Java、JSP、JavaScript等でWebアプリケーションを作成しているのですが、
bodyタグ中のonloadに記載したファンクションが時々呼ばれないという問題が起きています。
(こんな感じで記述
 <body onload="hoge();hogehoge();">
 hogehoge()がたまに呼ばれないことがある・・・)

これを回避する方法として、「onload処理をwindow.onloadに記述すれば良い」
という話を聞きました。
(こんな感じで記述
 <script>
   window.onload = function(...続きを読む

Aベストアンサー

><body onload="hoge();hogehoge();">
hoge()に処理を中断するような内容が書かれている可能性もあります。
そうなると、なにをやってもhogehoge()は実行されません。

また、タグにメソッドを書き込むのはHTMLとJavascriptの分離という
視点でもあまりスマートではありません。
意識してwindow.onloadを使った方がきれいなソースになります

Q画面立ち上げ時 カーソルが出ない

windowas meのノートを使っていました。
画面を立ち上げたら、画面の絵や文字が拡大されていて、いくら動かしてもカーソルが現れません。
今は違うパソコンからアクセスしてますが、どうしたらよいのでしょうか?
教えてください。お願いします。

Aベストアンサー

多分、レジストリトラブルでしょう!

キーボードよりウインドウズキーを押し、
方向キー(↑)で「ファイル名を指定して実行」で
エンター、scanregw /restore(scanregwの後
ワンスペース)と入力しエンター、
「レジストリの復元」画面で
方向キーで正常だった最新の日でエンター
これで再起動がかかります

修復出来ると思いますが?

Q外部ファイルでBODYのonloadイベントの関数を指定するには?

(1)<BODY onload="funcA()">という形でなく、
ヘッダー内に入れた外部ファイルに
(2)document.body.onload=funcA;
としたいのですが、
「document.bodyはオブジェクトではありません」
というエラーになってしまいます。

<script language="javascript" src="xx.js">は
<head></head>の中に入れています。

どうしたら(2)の方法で、
外部ファイルでbodyのonloadイベントの関数を指定できるでしょうか?

Aベストアンサー

> やってみたのですが、「htmlfile:実装されていません」というエラーになってしまいました

原因になりそうなことを、とりあえず、二つほど思いつきます。

・関数や外部スクリプトファイル自体に問題がある

onload で実行される関数をうんと単純にしてみましょう。例えば、xx.js の中身を

function funcA() {
  alert("test");
}
document.body.onload=funcA;

だけにしてしまう。

これは、動くはずです。さっきの解答を書くときに確認したから。

・ハンドラの指定の書式が違う

document.body.onload=関数名 という書式は IE だけです。NN4.7x では無効な
書き方です(でも、違うエラーが出るはず)。

# NN6.x は手近にないので、確認できません。

Qツールバーにカーソルをポイントしてもヒントが出ない

エクセルの2000を使っていますが、標準ツールバーにある「上書き保存」のマークや「切り取り」などのマークの上にカーソルを置いてもヒントが出ません。
普通だったらどんなことが出来るのか、マウスポインタの下に文字が出ますよね?
すみませんが、ご回答よろしくお願いします<(_ _)>

Aベストアンサー

ツール-ユーザー設定-オプションタブ
ツールバーにボタン名を表示する のチェックを
オンにしてみてください。

Qが実行されません

いつもお世話になります。
下記java scriptにて画像(4枚)をランダムに表示させるようにしたいのですが、
なぜか<body onload="display_image()">が実行されず表示されません。
これを新規で移せば実行されるのですが、作成中のHTML上ではなぜか文字色がグレーとなり実行されません。

アドバイスお願い致します。

<div align="center"><br />


<Script type="text/javascript">
<!--
var iValue, rNumber;
var img1 = new Image();
var img2 = new Image();
var img3 = new Image();
var img4 = new Image();
img1 = "img/img1.jpg";
img2 = "img/img2.jpg";
img3 = "img/img3.jpg";
img4 = "img/img4.jpg";
function display_image(){
iValue = Math.random() * 4;
rNumber = Math.ceil(iValue);
if(rNumber==0) rNumber++;
document.image1.src=eval("img" + rNumber);
}
//-->
</Script>

<body onload="display_image()">


<img src="image8" name="image8" width="700" height="400" id="image8" /></div>
</Body>

いつもお世話になります。
下記java scriptにて画像(4枚)をランダムに表示させるようにしたいのですが、
なぜか<body onload="display_image()">が実行されず表示されません。
これを新規で移せば実行されるのですが、作成中のHTML上ではなぜか文字色がグレーとなり実行されません。

アドバイスお願い致します。

<div align="center"><br />


<Script type="text/javascript">
<!--
var iValue, rNumber;
var img1 = new Image();
var img2 = new Image();
var img3 = new Image();
var img4 =...続きを読む

Aベストアンサー

とりあえずタグの入れ子を直しても動かないという前提で

>img1 = "img/img1.jpg";
→img1.src = "img/img1.jpg";
new Imageとしているならこうしないと×
後のdocument.image8への代入も既にimageオブジェクトなのでdocument.image8.srcとする必要なし。

//あとこういう場合は配列使おう。楽になるよ
var a_img = ["img/img1.jpg","img/img2.jpg","img/img3.jpg","img4.jpg"];
document.image8.src = a_img[Math.floor(Math.random()*a_img.length)];

evalは可能な限り使わない方が良い

Q画像にカーソルをおくと左上に出てくるものを出ないようにするタグ教えてください!

よく画像にカーソルをおくと、
画像の左上に小さくでてくるもの
(クリックすると、画像を保存できたり、
印刷出来たり、メールで添付できる4つのものです)
を、出てこなくしたいのですが
その方法(タグ等)教えて頂けますか?
宜しくお願いします。

Aベストアンサー

1ページ分の画像のイメージツールバーを非表示する場合。
<HEAD>と</HEAD>の間に入れてください。
<meta http-equiv="imagetoolbar" content="no">

imgタグに直接入力する場合は
<img src="画像のファイル名" alt="画像の説明" width="横幅" height="縦長さ" galleryimg="no">

Qで、Q1に後で値を設定して表示するには

お世話になります。
<input type="text" name="Q1">で、Q1に後で値を設定して表示するにはどうしたら良いものでしょうか。
name="Q1"
と、しているので、
onMousedown="function()"
で、nameでしてしたエリアに値を書き込めば、できると思うのですが、
このfunction()をどのように書いたらよいものか、いろいろ調べてもわかりません。
何とかご教示願えないでしょうか。
よろしくお願いします。

Aベストアンサー

javascriptを利用することで出来ます。
こんな感じで動くでしょう。
ちなみにテキストボックスなどをjavascriptで操作する場合は
idをつけておくと便利です。

これ以上をやりたいというのであれば
参考URLなど見て勉強してみてください
<html>
<head>

</head>
<body>

<input type="text" id="Q1" name="Q1" onmousedown="hoge()">
</body>
<script type='text/javascript'>
function hoge()
{
Q1.value = ""; //""のなかに設定する値
}
</script>

参考URL:http://www.parkcity.ne.jp/~chaichan/src/javasc21.htm

Qカーソルを近づけても表示が出ない

Microsoft Internet Explorerや、タスクバーのクイック起動アイコンにカーソルを近づけると、それが何なのか、黄色い帯の中に黒い字で表示が出ますが、Word2003, Excel2003, Outlook2003では、近づけても何も出ません。どうしたら、インターネットやタスクバーのように、表示が出るように設定できますか?

Aベストアンサー

WordやExcelのツールバーのボタンをポイントしたときに表示される吹き出しのことですね。
ユーザー設定のオプションで、「ツールバーにボタン名を表示する」のチェックが外れていると思います。チェックを付けてください。

Qマウスカーソルを画像や文字に重ねるとカーソルのすぐ右下に画像を表示する

マウスカーソルを画像や文字に重ねるとカーソルのすぐ右下に画像を表示するようにしたいのですが、どのようなHTMLタグやjavascriptを使えばいいですか?

Aベストアンサー

4つ上の質問と似ていますね。
 http://oshiete1.goo.ne.jp/qa4606506.html
そこで質問されているライブラリを利用すれば、比較的簡単かと…

残念ながら、ライブラリのHPがつながりませんが、サンプルページが残っていましたので
 http://boxover.swazz.org/example.html​


人気Q&Aランキング