クイック スタート: ボタンの追加 (HTML)

[ この記事は、Windows ランタイム アプリを作成する Windows 8.x および Windows Phone 8.x 開発者を対象としています。Windows 10 向けの開発を行っている場合は、「最新のドキュメント」をご覧ください]

さまざまな種類の button コントロールを作成する方法について説明します。

必要条件

ボタンとボタン イベントについて

HTML でボタンを作成するには、HTML に button 要素を追加します。HTML にボタンのコンテンツを設定するには、button タグの開始タグと終了タグの間にテキストを追加します。button には、テキストや画像など、さまざまな種類のコンテンツを含めることができます。ほとんどのボタンにはテキストのみが含まれます。

<button>A button</button>

JavaScript で button を作成するには、新しい button オブジェクトを作成し、ドキュメント オブジェクト モデル (DOM) にアタッチします。 ボタン テキストの設定には、innerHTML プロパティを使います。

var newButton = document.createElement("button");
newButton.innerHTML = "A button";
var buttonParent = document.getElementById("buttonParent");
buttonParent.appendChild(newButton);

ボタンには標準的なボタン、送信ボタン、リセット ボタンの 3 種類があります。ボタンの種類を指定するには、ボタンの type 属性を "button"、"submit"、または "reset" に設定します。

ユーザー側のボタン操作の主なものは、クリックです。このため、アプリに標準的なボタンを追加するときには、click イベントを処理します (提出ボタンとリセット ボタンは、所属する form 要素に対して自動でアクションを実行するため、click イベントを処理する必要はありません)。

click イベントを処理するときには、クリック位置、イベントを発生させたボタンなどの座標を検索するために使う MouseEvent オブジェクトをハンドラーが受け取ります。

click イベントは、マウス、タッチ、マウス、ペン/スタイラスによる入力で動作します。ボタン イベントの完全な一覧については、「button reference page」をご覧ください。

標準的なボタンを追加する

動作を即座に開始するには、標準的な button を使います。

他のページに移動する操作では、ボタンは使わず、リンクを使います。 例外: ウィザードでのページの移動には、[戻る] と [次へ] というラベルのボタンを使います。他の種類の前に戻る移動や上位レベルへの移動では、win-backbutton スタイルのボタンを使います。

標準の button を作成するには、button 要素をマークアップに追加します。次に、button コントロールの開始タグと終了タグの間に、ボタンの表面に表示するテキストを追加します。

この例では、標準的な button と出力段落を作成します。

<button 
    id="standardButton" 
    onclick="ButtonExamples.standardButtonClicked(event)">Click me!</button>
<p id="outputParagraph"></p>

次の例では、ButtonExamples.standardButtonClicked イベント ハンドラーを定義し、パブリックにアクセスできるようにしています。このボタンをクリックすると、前の例で定義された出力の段落のテキストの一部が表示されます。

function standardButtonClicked(eventInfo) {
    document.getElementById("outputParagraph").innerText = "Click!"; 
}

WinJS.Namespace.define("ButtonExamples", 
{ standardButtonClicked : standardButtonClicked });

(このほか、input 要素を作成してその type 属性を "button" に設定することによって、標準的なボタンを作成できます)。

フォームに標準的なボタンを追加する

form 内では、属性を持たない button 要素は、フォーム内の最初のボタンであれば、送信ボタンとして動作します。標準的なボタンにするには、button 要素の type 属性を "button" に設定します。

<form>
    <button 
        type="button"
        onclick="ButtonExamples.standardFormButtonClicked(event)">I'm a standard button!</button>
    <p id="outputParagraph2"></p>
</form>
function standardFormButtonClicked(eventInfo) {
    document.getElementById("outputParagraph2").innerText = "Click!";
}

WinJS.Namespace.define("ButtonExamples",
{ standardFormButtonClicked: standardFormButtonClicked });

送信ボタンを追加する

フォームのコントロールに入力されるデータを送るには、form 内の送信ボタンを使います。送信ボタンを作成するには、button 要素を追加し、その type 属性を "submit" に設定します。

<form action="https://www.bing.com" method="get"
    onsubmit="ButtonExamples.formSubmitted(event)">
    <input type="text" id="searchQuery" name="q" placeholder="Enter a search query." />
    <button type="submit">Search</button>
    <button type="reset">Clear</button>
</form> 
<p id="formOutput"></p>
function formSubmitted(eventInfo) {
    document.getElementById("formOutput").innerText =
        "You searched for " + document.getElementById("searchQuery").value;
}

WinJS.Namespace.define("ButtonExamples",
{ formSubmitted: formSubmitted });

ボタンにイベント ハンドラーを作成する必要はありません。ユーザーがクリックすると、フォームのアクションが自動的にトリガーされます。

(このほか、input 要素を作成してその type 属性を "submit" に設定することによって、送信ボタンを作成できます)。

リセット ボタンを追加する

リセット ボタンは、フォーム内の入力要素を初期値にリセットします。リセット ボタンを作成するには、button 要素を追加し、その type 属性を "reset" に設定します。

<form action="https://www.bing.com" method="get">
    <input type="text" id="searchQuery2" name="q" placeholder="Enter a search query." />
    <button type="submit">Search</button>
    <button type="reset">Clear</button>
</form> 

ボタンにイベント ハンドラーを作成する必要はありません。ユーザーがクリックすると、フォームが自動的にリセットされます。

(このほか、input 要素を作成してその type 属性を "reset" に設定することによって、リセット ボタンを作成できます)。

ボタンにスタイルを指定する

ボタンにスタイルを指定する方法について詳しくは、「ボタンのスタイルを指定する方法」をご覧ください。

要約

このクイックスタートでは、さまざまな種類の button コントロールを作成する方法について説明しました。