このボタンはクリックされると入力用のダイアログを出します。その後入力された内容をフォームへ書き出します。
応用:prompt()の括弧の中の文章を他の言葉に取り替えて使えます。
参照: onClick, 変数, prompt(), value, forms[ ], elements[ ],
<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.valueのthisはこのスクリプトの書かれた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
| PART1 これだけ知っていれば大丈夫
| PART2 サンプルの紹介
| PART3 JavaScript言語仕様
| PART4 JavaScriptクイック書式一覧
| PART5 JavaScriptサイト
| オンラインサポートページ(回線をつないでください)