3、jQuery Mobile 表单
1 基础
jQuery Mobile 表单结构:form必须有method和action属性。 每个表单元素必须有唯一的id,每个表单元素必须有一个<label>元素,for属性匹配对应元素的id。
当元素使用placeholder来替代label时,给label添加class=‘ui-hidden-accessible’属性达到隐藏的目的。
form中所有元素的前面添加含有data-role='fieldcontain'属性的div,会根据屏幕宽度自动设置表单样式。
给元素添加data-role = "none"属性,避免jQuery Mobile自动为其添加样式。
<form method="post" action="demoform.asp"> <div data-role="fieldcontain"> <label for="fname">姓名:</label> <input type="text" data-role= "none" name="fname" id="fname"> <input type="submit" data-inline="true" value="提交"> </div> </form> <form method="post" action="demoform.asp"> <label for="fname" class="ui-hidden-accessible">姓名</label> <input type="text" name="fname" id="fname" placeholder="姓名..."> <input type="submit" data-inline="true" value="提交"> </form>
jQuery Mobile 提交表单,会自动使用ajax提交表单。
2 输入
使用标准的html元素,也可以使用html5的元素。type可以为text、date、email、radio、search、checkbox等等。 <textarea> 用来输入多行文本。
placeholder属性为输入提示。
单选 和 复选 按钮组可以使用<fieldset data-role='controlgroup' data-type='horizontal'>标签来组合这些选项。 data-type='horizontal' 属性可以让按钮水平显示。
<legend> 属性用来定义标题。
<form method="post" action="demoform.asp"> <div data-role="fieldcontain"> <label for="fullname">全名:</label> <input type="text" name="fullname" id="fullname"> <label for="bday">生日:</label> <input type="date" name="bday" id="bday"> <label for="email">电邮:</label> <input type="email" name="email" id="email" placeholder="您的邮件地址.."> <label for="info">Additional Information:</label> <textarea name="addinfo" id="info" ></textarea> <label for="search">Search:</label> <input type="search" name="search" id="search"> <fieldset data-role="controlgroup" data-type="horizontal"> <legend>Choose your gender:</legend> <label for="male">Male</label> <input type="radio" name="gender" id="male" value="male" checked> <label for="female">Female</label> <input type="radio" name="gender" id="female" value="female"> </fieldset> <legend>Choose as many favorite colors as you'd like:</legend> <label for="red">Red</label> <input type="checkbox" name="favcolor" id="red" value="red"> <label for="green">Green</label> <input type="checkbox" name="favcolor" id="green" value="green"> <label for="blue">Blue</label> <input type="checkbox" name="favcolor" id="blue" value="blue"> </div> </form>
3 选择(select)
<optgroup>标签用来分组。
data-native-menu = 'false' 可以使所有平台上的样式显示一样。
multiple 让select改为多选。
<div data-role="fieldcontain"> 可以组合多个选择菜单。
<fieldset> 标签添加data-type='horizontal' 使多个水平显示。
<fieldset> 标签添加data-role="collapsible" 可创建可折叠表单。
<form method="post" action="demoform.asp"> <div data-role='fieldcontain'> <fieldset data-role="fieldcontain"> <label for="day">选择天</label> <select name="day" id="day" data-native-menu="false" multiple> <optgroup label="工作日"> <option value="mon">星期一</option> <option value="tue">星期二</option> <option value="wed">星期三</option> <option value="thu">星期四</option> <option value="fri">星期五</option> </optgroup> <optgroup label="周末"> <option value="sat">星期六</option> <option value="sun">星期日</option> </optgroup> </select> </fieldset> <input type="submit" data-inline="true" value="提交"> </div> </form>
4、滑动
数字滑动选择,data-hightlight="true"让已选择的区域高亮显示。
<form method="post" action="demoform.asp"> <div data-role="fieldcontain"> <label for="points">Points:</label> <input type="range" name="points" id="points" value="50" min="0" max="100" data-hightlight="true"> </div> </form>
切换开关, 给select添加data-role="slider"来实现。
<form method="post" action="demoform.asp"> <div data-role="fieldcontain"> <label for="switch">Toggle Switch:</label> <select name="switch" id="switch" data-role="slider"> <option value="on">On</option> <option value="off" selected>Off</option> </select> </div> </form>