jquery-mobile/docs/forms/switch/index.html
2011-10-17 13:51:45 -07:00

157 lines
6.6 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery Mobile Docs - Sliders</title>
<link rel="stylesheet" href="../../../css/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>Flip Toggle Switch</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>Flip toggle switch</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>A binary "flip" switch is a common UI element on mobile devices that is used for binary on/off or true/false data input. You can either drag the flip handle like a slider or tap one side of the switch.</p>
<p>To create a flip toggle, start with a <code>select</code> with two options. The first option will be styled as the "on" state switch and the second will be styled as the "off" state so write your options accordingly.</p>
<p>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. It's possible to <a href="../docs-forms.html">accessibly hide the label</a> if it's not desired in the page layout, but we require that it is present in the markup for semantic and accessibility reasons.</p>
<pre><code>
&lt;label for=&quot;flip-a&quot;&gt;Select slider:&lt;/label&gt;
&lt;select name=&quot;slider&quot; id=&quot;flip-a&quot; data-role=&quot;slider&quot;&gt;
&lt;option value=&quot;off&quot;&gt;Off&lt;/option&gt;
&lt;option value=&quot;on&quot;&gt;On&lt;/option&gt;
&lt;/select&gt;
</code></pre>
<p>This will produce a basic flip toggle switch input. The default styles set the width of the switch to 100% of the parent container and stacks the label on a separate line.</p>
<label for="flip-a">Flip switch:</label>
<select name="slider" id="flip-a" data-role="slider">
<option value="off">Off</option>
<option value="on">On</option>
</select>
<p>Optionally wrap the switch markup in a container with the <code>data-role="fieldcontain"</code> attribute to help visually group it in a longer form.</p>
<pre><code>
<strong>&lt;div data-role=&quot;fieldcontain&quot;&gt;
</strong>&lt;label for=&quot;flip-b&quot;&gt;Flip switch:&lt;/label&gt;
&lt;select name=&quot;slider&quot; id=&quot;flip-b&quot; data-role=&quot;slider&quot;&gt;
&lt;option value=&quot;no&quot;&gt;No&lt;/option&gt;
&lt;option value=&quot;yes&quot;&gt;Yes&lt;/option&gt;
&lt;/select&gt;
<strong>&lt;/div&gt;
</strong></code></pre>
<p>The flip toggle switch is now displayed like this:</p>
<div data-role="fieldcontain">
<label for="flip-b">Flip switch:</label>
<select name="slider" id="flip-b" data-role="slider">
<option value="no">No</option>
<option value="yes">Yes</option>
</select>
</div>
<h2>Theming the flip switch</h2>
<p>Like all form elements, this widget will automatically inherit the theme from it's parent container. TO choose a specific theme color swatch, specify the <code>data-theme</code> attribute on the select and specify a swatch letter.</p>
<pre><code>
&lt;div data-role=&quot;fieldcontain&quot;&gt;
&lt;label for=&quot;flip-c&quot;&gt;Flip switch:&lt;/label&gt;
&lt;select name=&quot;slider&quot; id=&quot;flip-c&quot; data-role=&quot;slider&quot; data-theme=&quot;a&quot;&gt;
&lt;option value=&quot;no&quot;&gt;No&lt;/option&gt;
&lt;option value=&quot;yes&quot;&gt;Yes&lt;/option&gt;
&lt;/select&gt;
&lt;/div&gt;
</code></pre>
<p>This results in a switch with the A swatch colors for the handle. Note that the lefthand "on" state gets the active state color.</p>
<div data-role="fieldcontain">
<label for="flip-c">Flip switch:</label>
<select name="slider" id="flip-c" data-role="slider" data-theme="a">
<option value="no">No</option>
<option value="yes">Yes</option>
</select>
</div>
<p>Here is a E swatch variation:</p>
<div data-role="fieldcontain">
<label for="flip-d">Flip switch:</label>
<select name="slider" id="flip-d" data-role="slider" data-theme="e">
<option value="no">No</option>
<option value="yes">Yes</option>
</select>
</div>
<h2>Calling the switch plugin</h2>
<p>This plugin will auto initialize on any page that contains a <code>select</code> with the <code>data-role="slider"</code> attribute. However, if needed you can directly call the <code>slider</code> plugin on any selector, just like any jQuery plugin:</p>
<pre><code>
$('select').slider();
</code></pre>
</form>
</div><!--/content-primary -->
<div class="content-secondary">
<div data-role="collapsible" data-collapsed="true" data-theme="b" data-content-theme="d">
<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="../textinputs/index.html">Text inputs</a></li>
<li><a href="../search/">Search input</a></li>
<li><a href="../slider/">Slider</a></li>
<li data-theme="a"><a href="index.html">Flip toggle switch</a></li>
<li><a href="../radiobuttons/">Radio buttons</a></li>
<li><a href="../checkboxes/">Checkboxes</a></li>
<li><a href="../selects/">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>
</ul>
</div>
</div>
</div><!-- /content -->
<div data-role="footer" class="footer-docs" data-theme="c">
<p>&copy; 2011 The jQuery Project</p>
</div>
</div><!-- /page -->
</body>
</html>