新JavaScript入門  JavaScript,Neo-Generation  DOM  WSH  掲示板  表紙
14.Button  16.Select 
新JavaScript入門
15. Text
Textオブジェクトはいわゆるテキストボックスです。 主にユーザからの文字列の入力を受け付ける、 また出力するためのオブジェクトです。
Textオブジェクトの定義
Textオブジェクトは HTML文書の中で典型的に次のように定義します。
    <INPUT TYPE="text" NAME="string
                VALUE="string" SIZE="integer">
 
nameプロパティ
Textオブジェクトの名前を表わします。 オブジェクトを指定するときに用います。
valueプロパティ
テキストボックスに表示されるテキストを表わします。
    function calc(form) {
        alert(eval(form.text1.value));
    }
    
    <FORM STYLE="text-align:center">
        <INPUT TYPE="text" NAME="text1" SIZE=20>
        <INPUT TYPE="button"
                VALUE="押してね☆" ONCLICK="calc(this.form)">
    </FORM>
 
1+1 などと式を入力してボタンを押してください。式が評価されて表示されます。
sizeプロパティ
テキストボックスの幅を表わします。
    function test1(form) {
        form.text1.size = parseInt(form.text1.value);
    }
    
    <FORM STYLE="text-align:center">
        <INPUT TYPE="text" NAME="text1" SIZE=20>
        <INPUT TYPE="button"
                VALUE="押してね☆" ONCLICK="test1(this.form)">
    </FORM>
 
1以上の数字を入力してボタンを押してください。 テキストボックスの幅が変わるかもしれません。
defaultValueプロパティ
HTML文書で定義されたテキストを表わします。
formプロパティ
そのテキストボックスを含むフォームを表わします。
例は
こちら
focusメソッド
そのテキストボックスにフォーカスを移します。
blurメソッド
そのテキストボックスからフォーカスを外します。
selectメソッド
そのテキストボックスのテキストを全て選択します。
    function test1(form) {
        form.text1.select();
    }
    
    <FORM STYLE="text-align:center">
        <INPUT TYPE="text" NAME="text1" SIZE=20>
        <INPUT TYPE="button"
                VALUE="押してね☆" ONCLICK="test2(this.form)">
    </FORM>
 
何か文字列を入力してボタンを押してください。 その文字列がハイライト表示されます。
ただし、Netscape Navigator4.7では動きません。
onFocusイベントハンドラ
そのボタンがフォーカスされたときに実行されます。
onBlurイベントハンドラ
そのテキストボックスがフォーカスが失われたときに実行されます。
onSelectイベントハンドラ
そのテキストボックスのテキストが選択されハイライト表示されたときに実行されます。
onChangeイベントハンドラ
そのテキストボックスのフォーカスが失われたときに テキストがフォーカスされる前と変化していた場合実行されます。
しかし、 onChange と言えば、 フォーカスなど関係無くテキストが変化すれば直ちに実行すると 期待する人も多いでしょう。 JavaScript でそれを実現するには短い時間ごとにテキストをチェックする 以下の方法を用います。
    //テキストが変化したときに実行するサブルーチン
    function On_Change(str) {
        var n = str.length;
        //後ろ5文字だけ
        if(n > 5)
            document.form1.text1.value = str.substring(n - 5);
    }
    
    function test3() {
        var str = document.form1.text1.value;
        if(str == pretext)      //前のテキストと比べる
            On_Change(str);
        pretext = str;
        setTimeout("test3()", 100); //100+αmsごとに比べる
    }
    
    var pretext = "";
    setTimeout("test3()", 250);
 
適当に文字を入力してください。 5文字を超えると前から消されて5文字に切り詰められます。
ただし、Netscape Navigator4.7では動きません。
Written 12/14/97
Modified 6/1/03
first, prev, next, exit