Index

HOME > プログラムTOP > JavaScript



ダイアログボックスを開く

 JavaScriptの実用的なTIPS集です。ここではダイアログボックスを扱います。ダイアログボックスとは、ユーザーとの対話のためのウインドウです。下図は IE6 の例ですが、各ブラウザで独自のスタイルのものが用意されています。
 JavaScript からは、各ブラウザに共通する、以下の三種類のダイアログボックスを制御することができます。いずれも、window オブジェクトのメソッドです。(IE 4以上 / NN 4以上)
[INDEX] 警告ダイアログ(alert) ... ユーザーに注意を促します。
確認ダイアログ(confirm) ... ユーザーに確認を求めます。
入力ダイアログ(prompt) ... ユーザーに文字の入力を求めます。
ダイアログボックスのサンプル

sasaraan programming

Exposition

■警告ダイアログ

 警告ダイアログは、[OK] ボタンのみを持つシンプルなダイアログボックスで、ユーザーに注意を促す文字列を表示したい時に使用します。ただし、このダイアログが表示されると、他のウインドウの操作ができなくなりますので注意が必要です。

alert(str) : 警告ダイアログの表示 (str ... 表示する文字列)

 なお、表示する文字列は、エスケープ文字 "\n" を使って、改行することもできます。
// JavaScriptコード
function OpenAlert() 
{
     alert("警告ダイアログを開きました。\n複数行の入力もできます。");
}
<!-- HTML側 -->
<form style='margin:1ex; padding:0; font-size:100%;'>
     <input type='button' value='警告ダイアログ' onclick='OpenAlert()'/>
</form>	

■確認ダイアログ

 確認ダイアログは、[OK] と [キャンセル] の二つのボタンを持つダイアログボックスです。ユーザーに確認を求める時に使用します。ただし、このダイアログが表示されると、他のウインドウの操作ができなくなりますので注意が必要です。

confirm(str) : 確認ダイアログの表示 (str ... 表示する文字列)

 このダイアログの結果は論理値(true | false)となります。[OK] ボタンが押されると true 、[キャンセル] ボタンが押されると false を返しますので、この結果により処理を分けることができます。
// JavaScriptコード
function OpenConfirm() 
{
     var bRes;
     bRes = confirm("確認ダイアログを開きました。\nこのダイアログには戻り値があります。");
     if (bRes) {
          alert("[OK] の戻り値は " + bRes + " です。");
     } else {
          alert("[キャンセル] の戻り値は " + bRes + " です。");
     }
}
<!-- HTML側 -->
<form style='margin:1ex; padding:0; font-size:100%;'>
     <input type='button' value='確認ダイアログ' onclick='OpenConfirm()'/>
</form>	

■入力ダイアログ

 入力ダイアログは、ユーザーに文字の入力を求めるためのウインドウです。一つのテキストボックスと [OK] と [キャンセルセル] の二つのボタンを持ちます。ユーザーの指定する文字列が必要な時に使用します。ただし、このダイアログが表示されると、他のウインドウの操作ができなくなりますので注意が必要です。

prompt(str1, str2) : 入力ダイアログの表示 (str1 ... 説明文 / srr2 ... 初期値)

 このダイアログボックスは戻り値を持ちます。[OK] ボタンが押されると入力された文字列を、[キャンセル] ボタンが押されると null 値(値を持たないことを示す値)を返します。
// JavaScriptコード
function OpenPrompt() 
{
     var sValue = "ここに何か入力してください。"
     var sRes = prompt("入力ダイアログを開きました。", sValue);
     if (sRes == null) {
          alert("キャンセルは \"null\" を返します。");
     } else if (sRes==sValue || sRes=="") {
          alert("何も入力されていません!");
     } else {
          alert("入力した文字は、\"" + sRes + "\" です。");
     }
}
<!-- HTML側 -->
<form style='margin:1ex; padding:0; font-size:100%;'>
     <input type='button' value='入力ダイアログ' onclick='OpenPrompt()'/>
</form>	

www.sasaraan.net

(c) morijoh