5 <meta name="viewport" content="width=device-width, initial-scale=1">
6 <title>jQuery Mobile Docs - Radio Buttons</title>
7 <link rel="stylesheet" href="../../../css/themes/default/jquery.mobile.css" />
8 <link rel="stylesheet" href="../../_assets/css/jqm-docs.css"/>
9 <script src="../../../js/jquery.js"></script>
10 <script src="../../../docs/_assets/js/jqm-docs.js"></script>
11 <script src="../../../js/"></script>
16 <div data-role="page" class="type-interior">
18 <div data-role="header" data-theme="f">
19 <h1>Radio buttons</h1>
20 <a href="../../../" data-icon="home" data-iconpos="notext" data-direction="reverse">Home</a>
21 <a href="../../nav.html" data-icon="search" data-iconpos="notext" data-rel="dialog" data-transition="fade">Search</a>
22 </div><!-- /header -->
24 <div data-role="content">
25 <div class="content-primary">
27 <form action="#" method="get">
29 <h2>Radio buttons</h2>
31 <ul data-role="controlgroup" data-type="horizontal" class="localnav">
32 <li><a href="index.html" data-role="button" data-transition="fade" class="ui-btn-active">Basics</a></li>
33 <li><a href="options.html" data-role="button" data-transition="fade">Options</a></li>
34 <li><a href="methods.html" data-role="button" data-transition="fade">Methods</a></li>
35 <li><a href="events.html" data-role="button" data-transition="fade">Events</a></li>
38 <p>Radio buttons are used to provide a list of options where only a single item can be selected. Traditional desktop radio buttons are not optimized for touch input so jQuery Mobile styles the <code>label</code> for the radio buttons so they are larger and look clickable. A custom set of icons are added to the label to provide additional visual feedback.</p>
40 <p>The radio controls below use standard input/label markup, but are styled to be more touch-friendly. The styled control you see is actually the label element, which sits over the real input, so if images fail to load, you'll still have a functional control. In most browsers, clicking the label automatically triggers a click on the input, but we've had to trigger the update manually for a few mobile browsers that don't do this natively. On the desktop, these controls are keyboard and screen-reader accessible. View the <a href="../../api/data-attributes.html">data- attribute reference</a> to see all the possible attributes you can add to radio buttons.</p>
42 <h2>Vertically grouped radio buttons</h2>
44 <p>To create a set of radio buttons, add an <code>input</code> with a <code>type="radio"</code> attribute and a corresponding <code>label</code>. Set the <code>for</code> attribute of the <code>label</code> to match the <code>id</code> of the <code>input</code> so they are semantically associated.</p>
46 <p>The <code>label</code> element is displayed next to the radio form element. Wrap the radio buttons in a <code>fieldset</code> element that has a <code>legend</code> which acts as the title for the question.</p>
48 <p>To visually integrate multiple radio buttons into a vertically grouped button set, the framework will automatically remove all margins between buttons and round only the top and bottom corners of the set if there is a <code> data-role="controlgroup"</code> attribute on the container.</p>
51 <strong><fieldset data-role="controlgroup">
52 <legend>Choose a pet:</legend></strong>
53 <input type="radio" name="radio-choice" id="radio-choice-1" value="choice-1" checked="checked" />
54 <label for="radio-choice-1">Cat</label>
56 <input type="radio" name="radio-choice" id="radio-choice-2" value="choice-2" />
57 <label for="radio-choice-2">Dog</label>
59 <input type="radio" name="radio-choice" id="radio-choice-3" value="choice-3" />
60 <label for="radio-choice-3">Hamster</label>
62 <input type="radio" name="radio-choice" id="radio-choice-4" value="choice-4" />
63 <label for="radio-choice-4">Lizard</label>
64 <strong></fieldset></strong>
68 <p>This will produce a vertically grouped radio button set. The default styles set the width of the button group to 100% of the parent container and stacks the legend on a separate line.</p>
71 <fieldset data-role="controlgroup">
72 <legend>Choose a pet:</legend>
73 <input type="radio" name="radio-pet" id="radio-pet-1a" value="choice-1" checked="checked" />
74 <label for="radio-pet-1a">Cat</label>
76 <input type="radio" name="radio-pet" id="radio-pet-2a" value="choice-2" />
77 <label for="radio-pet-2a">Dog</label>
79 <input type="radio" name="radio-pet" id="radio-pet-3a" value="choice-3" />
80 <label for="radio-pet-3a">Hamster</label>
82 <input type="radio" name="radio-pet" id="radio-pet-4a" value="choice-4" />
83 <label for="radio-pet-4a">Lizard</label>
88 <p>For a more compact version that is useful in toolbars and tight spaces, add the <code>data-mini="true"</code> attribute to the element to create a <a href="../forms-all-mini.html">mini version</a>. </p>
91 <fieldset data-role="controlgroup" <strong>data-mini="true"</strong>>
92 <input type="radio" name="radio-mini" id="radio-mini-1" value="choice-1" checked="checked" />
93 <label for="radio-mini-1">Credit</label>
95 <input type="radio" name="radio-mini" id="radio-mini-2" value="choice-2" />
96 <label for="radio-mini-2">Debit</label>
98 <input type="radio" name="radio-mini" id="radio-mini-3" value="choice-3" />
99 <label for="radio-mini-3">Cash</label>
103 <p>This will produce a radio button that is not as tall as the standard version and has a smaller text size.</p>
105 <fieldset data-role="controlgroup" data-mini="true">
106 <input type="radio" name="radio-mini" id="radio-mini-1" value="choice-1" checked="checked" />
107 <label for="radio-mini-1">Credit</label>
108 <input type="radio" name="radio-mini" id="radio-mini-2" value="choice-2" />
109 <label for="radio-mini-2">Debit</label>
110 <input type="radio" name="radio-mini" id="radio-mini-3" value="choice-3" />
111 <label for="radio-mini-3">Cash</label>
114 <h2>Field containers</h2>
116 <p>Optionally wrap the radiobuttons in a container with the <code>data-role="fieldcontain"</code> attribute to help visually group it in a longer form.</p>
118 <strong><div data-role="fieldcontain"></strong>
119 <fieldset data-role="controlgroup">
120 <legend>Choose a pet:</legend>
121 <input type="radio" name="radio-choice-2" id="radio-choice-21" value="choice-1" checked="checked" />
122 <label for="radio-choice-21">Cat</label>
124 <input type="radio" name="radio-choice-2" id="radio-choice-22" value="choice-2" />
125 <label for="radio-choice-22">Dog</label>
127 <input type="radio" name="radio-choice-2" id="radio-choice-23" value="choice-3" />
128 <label for="radio-choice-23">Hamster</label>
130 <input type="radio" name="radio-choice-2" id="radio-choice-24" value="choice-4" />
131 <label for="radio-choice-24">Lizard</label>
134 </strong> </code></pre>
136 <div data-role="fieldcontain">
137 <fieldset data-role="controlgroup">
138 <legend>Choose a pet:</legend>
139 <input type="radio" name="radio-pet-1" id="radio-pet-1" value="choice-1" checked="checked" />
140 <label for="radio-pet-1">Cat</label>
142 <input type="radio" name="radio-pet-1" id="radio-pet-2" value="choice-2" />
143 <label for="radio-pet-2">Dog</label>
145 <input type="radio" name="radio-pet-1" id="radio-pet-3" value="choice-3" />
146 <label for="radio-pet-3">Hamster</label>
148 <input type="radio" name="radio-pet-1" id="radio-pet-4" value="choice-4" />
149 <label for="radio-pet-4">Lizard</label>
152 <h2>Horizontal radio button sets</h2>
154 <p>Radio buttons can also be used for grouped button sets where only a single button can be selected at once, such as a view switcher control. To make a horizontal radio button set, add the <code> data-type="horizontal"</code> to the <code>fieldset</code>.</p>
157 <fieldset data-role="controlgroup" <strong>data-type="horizontal"</strong> >
160 <div data-role="fieldcontain">
161 <fieldset data-role="controlgroup" data-type="horizontal">
162 <legend>Layout view:</legend>
163 <input type="radio" name="radio-view" id="radio-view-a" value="list" />
164 <label for="radio-view-a">List</label>
165 <input type="radio" name="radio-view" id="radio-view-b" value="grid" />
166 <label for="radio-view-b">Grid</label>
167 <input type="radio" name="radio-view" id="radio-view-c" value="gallery" />
168 <label for="radio-view-c">Gallery</label>
172 <p>The labels float so they sit side-by-side on a line. The radio button icons are hidden and only the left and right edges of the group are rounded.</p>
181 </div><!--/content-primary -->
183 <div class="content-secondary">
185 <div data-role="collapsible" data-collapsed="true" data-theme="b" data-content-theme="d">
187 <h3>More in this section</h3>
189 <ul data-role="listview" data-theme="c" data-dividertheme="d">
191 <li data-role="list-divider">Form elements</li>
192 <li><a href="../docs-forms.html">Form basics</a></li>
193 <li><a href="../forms-all.html">Form element gallery</a></li>
194 <li><a href="../textinputs/index.html">Text inputs</a></li>
195 <li><a href="../search/">Search input</a></li>
196 <li><a href="../slider/">Slider</a></li>
197 <li><a href="../switch/">Flip toggle switch</a></li>
198 <li data-theme="a"><a href="index.html">Radio buttons</a></li>
199 <li><a href="../checkboxes/">Checkboxes</a></li>
200 <li><a href="../selects/">Select menus</a></li>
201 <li><a href="../forms-themes.html">Theming forms</a></li>
202 <li><a href="../forms-all-native.html">Native form elements</a></li>
203 <li><a href="../forms-sample.html">Submitting forms</a></li>
210 </div><!-- /content -->
212 <div data-role="footer" class="footer-docs" data-theme="c">
213 <p class="jqm-version"></p>
214 <p>© 2012 jQuery Foundation and other contributors</p>