Button Control: Reset Buttons

resetボタン(input type="reset")を生成するサンプル。(YUIのExampleのページはこちら
他のボタン同様、markup(inputタグやbuttonタグ)から生成する場合と、ボタンを入れるコンテナ(div)だけ指定してYUIモジュールだけで作成する場合が示されている。

YUIモジュールだけで作成する場合には、基本的にYAHOO.widget.Buttonのコンストラクタの第2引数に指定する、オブジェクト・リテラルをいじるだけでボタンの種類がコントロールできる
これは非常な利点である。

以下が、サンプルの画面。YUIのExampleと特に変えていない。

以下にJavascriptを含むhtmlの全体を示す。
scriptはモジュールパターンで書き直した。

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>Ajax_Sampling</TITLE>
<style type="text/css">
body {
	margin:0;
	padding:0;
}
</style>
<link rel="stylesheet" type="text/css" href="scripts/yui/fonts/fonts-min.css" />
<link rel="stylesheet" type="text/css" href="scripts/yui/button/assets/skins/sam/button.css" />
<script type="text/javascript" src="scripts/yui/yahoo-dom-event/yahoo-dom-event.js"></script>
<script type="text/javascript" src="scripts/yui/element/element-beta-min.js"></script>
<script type="text/javascript" src="scripts/yui/button/button-min.js"></script>

<style type="text/css" id="defaultstyle">
#container {
	margin: 2px;
	padding: 3px;
	width: 500px;
	height: auto;
	border:1px dashed #999999;
}

#button-example-form fieldset, 
#button-example-form fieldset div {
	border: 2px groove #ccc;
	margin: .5em;
	padding: .5em;
}

</style>

<script type="text/javascript">
//モジュールパターンで実装する。
YAHOO.namespace("EGP");

YAHOO.EGP.ResetButton = function() {

	return{
    	init: function() {

	// ---- buttonをinputタグのtype=checkboxから生成する。-----
		
            // Create a Button using an existing <input> element as a data source

            var oResetButton1 = new YAHOO.widget.Button("resetbutton1");

            // Create a Button using an existing <button> element as a data source

            var oResetButton2 = new YAHOO.widget.Button("resetbutton2");


            // Create a Button using the YUI Button markup

            var oResetButton3 = new YAHOO.widget.Button("resetbutton3");

            var oResetButton4 = new YAHOO.widget.Button("resetbutton4", 
            		{ type: "reset" }
			);

	// ---- buttonをmarkupなしで生成する。-----

    	    var oResetButton5 = new YAHOO.widget.Button(
    	    	    { 	type: "reset", 
        	    	    label: "Reset Form", 
        	    	    id: "resetfield5", 
        	    	    container:  "resetbuttonsfromjavascript" 
            	    }
            );

		}
	};
}();

//DOMが完全にloadされたら、サンプルを初期化する。
YAHOO.util.Event.onDOMReady(
		//DomReadyイベントで発火するハンドラ
		YAHOO.EGP.ResetButton.init,
		//ハンドラに渡すオブジェクト(関数)
		YAHOO.EGP.ResetButton,
		//ハンドラは、上記のオブジェクトのスコープをもつ。   
		true
);

</script>
</HEAD>

<BODY class="yui-skin-sam">
<div id="container">
<p>
Reset Buttonの作り方のサンプルです。
</p>

<form id="button-example-form" name="button-example-form" method="post">
    <fieldset>
        <legend>Info</legend>
        <label for="firstname">First Name: </label>
        	<input type="text" id="firstname" name="firstname" value="">
        <label for="lastname">Last Name: </label>
        	<input type="text" id="lastname" name="lastname" value="">

        <div>
            <label for="male">Gender: </label>
            <label for="male">Male </label>
            	<input type="radio" id="male" name="gender" value="male" checked>
            
            <label for="female">Female </label>
            	<input type="radio" id="female" name="gender" value="female">
        </div>

        <div>
            <label for="month">Birthday: </label>
            	<select id="month" name="month">
            		<option value="1">1</option>
            		<option value="2">2</option>
            		<option value="3">3</option>
            		<option value="4">4</option>
            		<option value="5">5</option>
            		<option value="6">6</option>
            		<option value="7">7</option>
            		<option value="8">8</option>
            		<option value="9">9</option>
            		<option value="10">10</option>
            		<option value="11">11</option>
            		<option value="12">12</option>
            	</select>
	            <select name="day">
    	        	<option value="1">1</option>
        	    	<option value="2">2</option>
            		<option value="3">3</option>
	            	<option value="4">4</option>
    	        	<option value="5">5</option>
        	    	<option value="6">6</option>
            		<option value="7">7</option>
            		<option value="8">8</option>
	            	<option value="9">9</option>
    	        	<option value="10">10</option>
        	    	<option value="11">11</option>
            		<option value="12">12</option>
            		<option value="13">13</option>
	            	<option value="14">14</option>
    	        	<option value="15">15</option>
        	    	<option value="16">16</option>
            		<option value="17">17</option>
 		           	<option value="18">18</option>
        	    	<option value="19">19</option>
  		          	<option value="20">20</option>
        	    	<option value="21">21</option>
            		<option value="22">22</option>
	            	<option value="23">23</option>
    	        	<option value="24">24</option>
        	    	<option value="25">25</option>
            		<option value="26">26</option>
            		<option value="27">27</option>
	            	<option value="28">28</option>
    	        	<option value="29">29</option>
        	    	<option value="30">30</option>
            		<option value="31">31</option>
            	</select>

            <input type="text" name="year" value="">
        </div>
    </fieldset>

    <fieldset id="resetbuttons">
        <legend>Reset Buttons</legend>

        <fieldset id="resetbuttonsfrommarkup">
            <legend>From Markup</legend>

			<!-- inputタグ、buttonタグから生成 -->
            <div>
                <input id="resetbutton1" type="reset" name="resetfield1" value="Reset Form">
                <button id="resetbutton2" type="reset" name="resetfield2">Reset Form</button>
            </div>

			<!-- spanタグから生成 -->
            <div>
                <span id="resetbutton3" class="yui-button yui-reset-button">
                	<span class="first-child">
                		<input type="reset" name="resetfield3" value="Reset Form">
                	</span>
                </span>
                <span id="resetbutton4" class="yui-button yui-reset-button">
                	<span class="first-child">
                		<button type="button" name="resetfield4">Reset Form</button>
                	</span>
                </span>
            </div>
        </fieldset>

		<!-- scriptなしで生成 -->
        <fieldset id="resetbuttonsfromjavascript">
            <legend>From JavaScript</legend>
        </fieldset>

    </fieldset>
</form>
</div>
</BODY>		
</HTML>