C01 ボタンクリックで入力用ダイアログを出し、入力内容をformに表示する

このボタンはクリックされると入力用のダイアログを出します。その後入力された内容をフォームへ書き出します。

応用:prompt()の括弧の中の文章を他の言葉に取り替えて使えます。
参照: onClick, 変数, prompt(), value, forms[ ], elements[ ],

Sample



↑入力内容がここに出ます。この例じゃformに入力したほうが早いけど(^^;; 応用するといろいろと使い道があります。



Source
ソース
(コピーしてお使いください)
<html>
<head>
<title></title>
</head>
<body>

<form name="form1">
  <input type="button" value=" 入力 " 

   onClick="
     data = prompt('入力してください','書いてね(^^)')
     if(document.all)data = unescape(escape(data).split('%00')[0])
     this.form.fmsg.value = data
   ">

  <input type="text" name="fmsg">
  ←入力内容がここに出ます。
</form>

</body>
</html>
onClick="命令文"でクリックしたら"命令文"を実行するという意味です

this.form.fmsg.valuethisはこのスクリプトの書かれたINPUTタグを指しており、this.formで属するFORM、this.form.fmsgでそのFORMの中のfmsgという名前のタグを指しています。更に、this.form.fmsg.valueと書くことでそのタグのvalue(つまり、値)を意味します

if(document.all)data = unescape(escape(data).split('%00')[0])は、Win版のIEで入力以外のデータが付加されるのを回避するためのものです。document.allで分岐していますが厳密にはWin版IEだけの症状です

this.form.fmsg.value='メッセージ'は、そのフォームの値を'メッセージ'にする、つまり'メッセージ'を表示するという意味です

ちなみにこの場合は
document.form1.msg.value='メッセージ'
document.forms[0].elements[1].value='メッセージ'
document.forms['form1'].elements['fmsg'].value='メッセージ' などでも同じ意味です

prompt('文章1','文章2')は'文章1'が入力ダイアログ内に表示される文字で、'文章2'は入力フィールドにあらかじめ表示される書き換え可能な文字です。'文章2'は省略できます

したがって、this.form.fmsg.value=prompt()はprompt()の入力結果をフォームへ表示するわけです

*PS2用ブラウザ「EGBROWSER」は デフォルトで表示される入力文字列 '文章2' に日本語を使うと入力文字を取得できなくなりますが、'文章2'を省略しておくと日本語入力も受け付けます


Contents
| CONTENTS
| PART1 これだけ知っていれば大丈夫
| PART2 サンプルの紹介
| PART3 JavaScript言語仕様
| PART4 JavaScriptクイック書式一覧
| PART5 JavaScriptサイト
| オンラインサポートページ(回線をつないでください)


Maintained by
tato@fureai.or.jp works1997 Toshirou Takahashi