Yahoo! Developer Network Home - Help

YUI Library Examples: Button Control: Submit Buttons

Button Control: Submit Buttons

This example demonstrates different ways to create a Button that functions like an HTML submit button (<input type="submit"/> and <button type="submit"/>).

Info
Submit Buttons
From Markup
From JavaScript

Creating Submit Buttons

A Submit Button can be instantiated three different ways:

Using an existing <input type="submit"/> or <button type="submit"/> element

A Submit Button can be created using an existing <input type="submit"/> or <button type="submit"/> element as a source element, the attributes of which are captured and used for the creation of a new element that replaces the source element inline.

1<input id="submitbutton1" type="submit" name="submitfield1" value="Submit Form"
2<button id="submitbutton2" type="submit" name="submitfield2" value="submitfield2value"
3    Submit Form 
4</button> 
view plain | print | ?

Pass the id of the source element as the first argument to the Button's constructor. Additional configuration attributes for a Button can be set at instantiation time by specifying them in an object literal that is passed as the second argument to the Button's constructor. Note: the value of configuration attributes passed to the Button constructor will trump those of the corresponding HTML attributes of the original source element.

1// Create a Button using an existing <input> element as a data source 
2 
3var oSubmitButton1 = new YAHOO.widget.Button("submitbutton1", { value: "submitbutton1value" }); 
4 
5// Create a Button using an existing <button> element as a data source 
6 
7var oSubmitButton2 = new YAHOO.widget.Button("submitbutton2"); 
view plain | print | ?

Using pre-defined Button Control HTML

A Submit Button can also be instantiated using pre-defined Button Control HTML: An element with a class of "yui-button" and "yui-submit-button" containing a element with a class of "first-child" containing either a <input type="submit"/> or <button type="button"/> element:

1<span id="submitbutton3" class="yui-button yui-submit-button"
2    <span class="first-child"
3        <input type="submit" name="submitfield3" value="Submit Form"
4    </span> 
5</span> 
6<span id="submitbutton4" class="yui-button yui-submit-button"
7    <span class="first-child"
8        <button type="button" name="submitfield4">Submit Form</button> 
9    </span> 
10</span> 
view plain | print | ?

To instantiate a Submit Button using the Button Control HTML, pass the id of the Button's root element (the element with the classes "yui-button" and "yui-submit-button" applied) as the first argument to constructor and any additional configuration attributes as the second argument via an object literal.

1var oSubmitButton3 = new YAHOO.widget.Button("submitbutton3", { value: "submitbutton3value" }); 
2 
3var oSubmitButton4 = new YAHOO.widget.Button("submitbutton4", { type: "submit", value:  "submitbutton4value" });         
view plain | print | ?

Using no existing HTML

To build a Submit Button without any existing HTML, pass a set of configuration attributes as a single argument to the constructor using an object literal.

1var oSubmitButton5 = new YAHOO.widget.Button({  
2                                type: "submit",  
3                                label: "Submit Form",  
4                                id: "submitbutton5",  
5                                name: "submitbutton5",  
6                                value: "submitbutton5value",  
7                                container: "submitbuttonsfromjavascript" }); 
view plain | print | ?

In most cases, it is necessary to specify the button's id, type, label and container (the HTML element that the button should be appended to once created). If an id is not specified for the button, one will be generated using the generateId method of the Dom utility. Similarly, if the "type" attribute is omitted, the default type of "button" will be applied.

YUI Logger Output:

Logger Console

INFO657ms (+0) 4:39:25 AM:

Button submitbutton4

Initialization completed.

INFO657ms (+0) 4:39:25 AM:

Button submitbutton4

Setting attribute "name" using source element's attribute value of "submitfield4"

INFO657ms (+0) 4:39:25 AM:

Button submitbutton4

Building the button using an existing HTML element as a source element.

INFO657ms (+2) 4:39:25 AM:

Button submitbutton3

Initialization completed.

INFO655ms (+0) 4:39:25 AM:

Button submitbutton3

Setting attribute "name" using source element's attribute value of "submitfield3"

INFO655ms (+0) 4:39:25 AM:

Button submitbutton3

Setting attribute "type" using source element's attribute value of "submit"

INFO655ms (+0) 4:39:25 AM:

Button submitbutton3

Building the button using an existing HTML element as a source element.

INFO655ms (+0) 4:39:25 AM:

Button submitbutton2

Initialization completed.

INFO655ms (+1) 4:39:25 AM:

Button submitbutton2

Source element could not be used as is. Creating a new HTML element for the button.

INFO654ms (+0) 4:39:25 AM:

Button submitbutton2

Setting attribute "value" using source element's attribute value of "submitfield2value"

INFO654ms (+0) 4:39:25 AM:

Button submitbutton2

Setting attribute "name" using source element's attribute value of "submitfield2"

INFO654ms (+0) 4:39:25 AM:

Button submitbutton2

Setting attribute "type" using source element's attribute value of "submit"

INFO654ms (+0) 4:39:25 AM:

Button submitbutton2

Building the button using an existing HTML element as a source element.

INFO654ms (+1) 4:39:25 AM:

Button submitbutton1

Initialization completed.

INFO653ms (+0) 4:39:25 AM:

Button submitbutton1

Source element could not be used as is. Creating a new HTML element for the button.

INFO653ms (+0) 4:39:25 AM:

Button submitbutton1

Setting attribute "name" using source element's attribute value of "submitfield1"

INFO653ms (+0) 4:39:25 AM:

Button submitbutton1

Setting attribute "type" using source element's attribute value of "submit"

INFO653ms (+35) 4:39:25 AM:

Button submitbutton1

Building the button using an existing HTML element as a source element.

INFO618ms (+2) 4:39:25 AM:

Button submitbutton5

Initialization completed.

INFO616ms (+616) 4:39:25 AM:

Button submitbutton5

No source HTML element. Building the button using the set of configuration attributes.

INFO0ms (+0) 4:39:24 AM:

global

Logger initialized

Note: You are viewing this example in debug mode with logging enabled. This can significantly slow performance.

Reload with logging
and debugging disabled.

More Button Control Resources:

Copyright © 2008 Yahoo! Inc. All rights reserved.

Privacy Policy - Terms of Service - Copyright Policy - Job Openings