mirror of
https://github.com/Hopiu/jquery-mobile.git
synced 2026-03-17 14:30:28 +00:00
164 lines
7.9 KiB
HTML
Executable file
164 lines
7.9 KiB
HTML
Executable file
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>jQuery Mobile Docs - Radio Buttons</title>
|
|
<link rel="stylesheet" href="../../../themes/default/" />
|
|
<link rel="stylesheet" href="../../_assets/css/jqm-docs.css"/>
|
|
<script src="../../../js/jquery.js"></script>
|
|
<script src="../../../experiments/themeswitcher/jquery.mobile.themeswitcher.js"></script>
|
|
<script src="../../_assets/js/jqm-docs.js"></script>
|
|
<script src="../../../js/"></script>
|
|
</head>
|
|
<body>
|
|
|
|
<div data-role="page" class="type-interior">
|
|
|
|
<div data-role="header" data-theme="f">
|
|
<h1>Radio buttons</h1>
|
|
<a href="../../../" data-icon="home" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home">Home</a>
|
|
</div><!-- /header -->
|
|
|
|
<div data-role="content">
|
|
<div class="content-primary">
|
|
|
|
<form action="#" method="get">
|
|
|
|
<h2>Radio buttons</h2>
|
|
|
|
<ul data-role="controlgroup" data-type="horizontal" class="localnav">
|
|
<li><a href="index.html" data-role="button" data-transition="fade" class="ui-btn-active">Basics</a></li>
|
|
<li><a href="options.html" data-role="button" data-transition="fade">Options</a></li>
|
|
<li><a href="methods.html" data-role="button" data-transition="fade">Methods</a></li>
|
|
<li><a href="events.html" data-role="button" data-transition="fade">Events</a></li>
|
|
</ul>
|
|
|
|
<p>Radio buttons are used to provide a list of options where only a single items can be selected. Traditional desktop radio buttons are not optimized for touch input so in jQuery Mobile, we style 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>
|
|
|
|
<p>Both the radio and checkbox 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. </p>
|
|
|
|
<h2>Vertically grouped radio buttons</h2>
|
|
|
|
<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 ID of the <code>input</code> so they are semantically associated.</p>
|
|
|
|
<p>Because radio buttons use the <code>label</code> element for the text displayed next to the checkbox form element, we recommend wrapping the radio buttons in a <code>fieldset</code> element that has a <code>legend</code> which acts as the title for the question.</p>
|
|
|
|
<p>Lastly, need to wrap the <code>fieldset</code> in a <code>div</code> with <code> data-role="controlgroup"</code> attribute to the <code>fieldset</code> so it can be styled in a parallel way as text inputs, selects or other form elements.</p>
|
|
|
|
<pre><code>
|
|
<div data-role="fieldcontain">
|
|
<fieldset data-role="controlgroup">
|
|
<legend>Choose a pet:</legend>
|
|
<input type="radio" name="radio-choice-1" id="radio-choice-1" value="choice-1" checked="checked" />
|
|
<label for="radio-choice-1">Cat</label>
|
|
|
|
<input type="radio" name="radio-choice-1" id="radio-choice-2" value="choice-2" />
|
|
<label for="radio-choice-2">Dog</label>
|
|
|
|
<input type="radio" name="radio-choice-1" id="radio-choice-3" value="choice-3" />
|
|
<label for="radio-choice-3">Hamster</label>
|
|
|
|
<input type="radio" name="radio-choice-1" id="radio-choice-4" value="choice-4" />
|
|
<label for="radio-choice-4">Lizard</label>
|
|
</fieldset>
|
|
</div>
|
|
</code></pre>
|
|
|
|
<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 fie.</p>
|
|
|
|
<div data-role="fieldcontain">
|
|
<fieldset data-role="controlgroup">
|
|
<legend>Choose a pet:</legend>
|
|
<input type="radio" name="radio-pet-1" id="radio-pet-1" value="choice-1" checked="checked" />
|
|
<label for="radio-pet-1">Cat</label>
|
|
|
|
<input type="radio" name="radio-pet-1" id="radio-pet-2" value="choice-2" />
|
|
<label for="radio-pet-2">Dog</label>
|
|
|
|
<input type="radio" name="radio-pet-1" id="radio-pet-3" value="choice-3" />
|
|
<label for="radio-pet-3">Hamster</label>
|
|
|
|
<input type="radio" name="radio-pet-1" id="radio-pet-4" value="choice-4" />
|
|
<label for="radio-pet-4">Lizard</label>
|
|
</fieldset>
|
|
</div>
|
|
|
|
<h2>Horizontal radio button sets</h2>
|
|
|
|
<p>Radio buttons can also be used for grouped button sets 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>
|
|
|
|
<code>
|
|
<fieldset data-role="controlgroup" <strong>data-type="horizontal"</strong> >
|
|
</code>
|
|
|
|
<div data-role="fieldcontain">
|
|
<fieldset data-role="controlgroup" data-type="horizontal">
|
|
<legend>Layout view:</legend>
|
|
<input type="radio" name="radio-view" id="radio-view-a" value="list" />
|
|
<label for="radio-view-a">List</label>
|
|
<input type="radio" name="radio-view" id="radio-view-b" value="grid" />
|
|
<label for="radio-view-b">Grid</label>
|
|
<input type="radio" name="radio-view" id="radio-view-c" value="gallery" />
|
|
<label for="radio-view-c">Gallery</label>
|
|
</fieldset>
|
|
</div>
|
|
|
|
<p>The framework will float the labels so they sit side-by-side on a line, hide the radio button icons and only round the left and right edges of the group.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h2>Refreshing a radio button</h2>
|
|
|
|
<p>If you manipulate a radio button via JavaScript, you must call the refresh method on it to update the visual styling. Here is an example:</p>
|
|
|
|
|
|
<code>
|
|
$("input[type='radio']").attr("checked",true).checkboxradio("refresh");
|
|
</code>
|
|
|
|
|
|
</form>
|
|
|
|
</div><!--/content-primary -->
|
|
|
|
<div class="content-secondary">
|
|
|
|
<div data-role="collapsible" data-collapsed="true" data-theme="b">
|
|
|
|
<h3>More in this section</h3>
|
|
|
|
<ul data-role="listview" data-theme="c" data-dividertheme="d">
|
|
|
|
<li data-role="list-divider">Form elements</li>
|
|
<li><a href="../docs-forms.html">Form basics</a></li>
|
|
<li><a href="../forms-all.html">Form element gallery</a></li>
|
|
<li><a href="../texts/index.html">Text inputs</a></li>
|
|
<li><a href="../forms-search.html">Search inputs</a></li>
|
|
<li><a href="../forms-slider.html">Slider</a></li>
|
|
<li><a href="../forms-switch.html">Flip toggle switch</a></li>
|
|
<li data-theme="a"><a href="index.html">Radio buttons</a></li>
|
|
<li><a href="../checkboxes/index.html">Checkboxes</a></li>
|
|
<li><a href="../selects/index.html">Select menus</a></li>
|
|
<li><a href="../forms-themes.html">Theming forms</a></li>
|
|
<li><a href="../forms-all-native.html">Native form elements</a></li>
|
|
<li><a href="../forms-sample.html">Submitting forms</a></li>
|
|
<li><a href="../plugin-eventsmethods.html">Plugin methods</a></li>
|
|
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
</div><!-- /content -->
|
|
|
|
<div data-role="footer" class="footer-docs" data-theme="c">
|
|
<p>© 2011 The jQuery Project</p>
|
|
</div>
|
|
|
|
</div><!-- /page -->
|
|
|
|
</body>
|
|
</html>
|