jquerymobile-7 表单基础 radio buttons和checkboxes select menu 搜索框、滑动按钮(Slider)、开关(Flip toggle switch)

在开发的过程中,经常会用到表单进行交互,所以是比较重要的。今天就开始一点有点介绍吧。

对于我发表的文章,都是比较肤浅的,属于入门性的东西,如果你看着感觉在浪费时间,那么请不要拍砖,你去官网上看就可以了。

在开发的过程中,我们经常会用到的就是登录,开始就先写一个页面介绍一下基础:

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <title>Form Example 1</title>  
  5. <meta name="viewport" content="width=device-width, initial-scale=1">  
  6. <link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />  
  7. <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>  
  8. <script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>  
  9. </head>  
  10.   
  11. <body>  
  12.   
  13. <div data-role="page">  
  14.   
  15.     <div data-role="header">  
  16.         <h1>Form Demo</h1>  
  17.     </div>  
  18.       
  19.     <div data-role="content">  
  20.           
  21.         <form action="echo.cfm" method="post">  
  22.               
  23.         <div data-role="fieldcontain">  
  24.             <label for="name">Name:</label>  
  25.             <input type="text" name="name" id="name" value=""  />  
  26.         </div>      
  27.   
  28.         <div data-role="fieldcontain">  
  29.             <label for="email">Email:</label>  
  30.             <input type="text" name="email" id="email" value=""  />  
  31.         </div>      
  32.   
  33.         <div data-role="fieldcontain">  
  34.             <input type="submit" name="submit" value="登录"  />  
  35.         </div>      
  36.           
  37.         </form>  
  38.   
  39.     </div>  
  40.   
  41. </div>  
  42.   
  43. </body>  
  44. </html>  

这段代码显示如下:


在上面的代码中我们使用到了data-role="fieldcontain",这个是为了使被其包围的代码看起来更像一个整体,结果就是在被包围的下面添加了一条横线。其他的作用我也没有发现。

虽然上面的显示效果很好,但是还是有点问题的。如果我们将浏览器的拉宽,那么会有如下的效果:


这样就有点偏了,看了一下原因是因为CSS中.ui-field-contain .ui-btn .ui-submit设置了width为78%。 解决他我们只要把按钮包围的data-role="fieldcontain"的div去掉就可以了。可能这个在手机上不会发生,因为手机屏幕就那么大,但是还是了解一下比较好。

在平时的开发中难免会用到单选和复选按钮,所以简单的介绍一下这两个,首先看一段代码:

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <title>Form Example 3</title>  
  5. <meta name="viewport" content="width=device-width, initial-scale=1">  
  6. <link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />  
  7. <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>  
  8. <script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>  
  9. </head>  
  10.   
  11. <body>  
  12.   
  13. <div data-role="page">  
  14.   
  15.     <div data-role="header">  
  16.         <h1>Form Demo</h1>  
  17.     </div>  
  18.       
  19.     <div data-role="content">  
  20.           
  21.         <form action="echo.cfm" method="post">  
  22.               
  23.         <div data-role="fieldcontain">  
  24.             <fieldset data-role="controlgroup">  
  25.                 <legend>性别:</legend>  
  26.   
  27.                 <input type="radio" name="sex" id="nan" value="男">  
  28.                 <label for="nan"></label>   
  29.   
  30.                 <input type="radio" name="sex" id="nv" value="女">  
  31.                 <label for="nv"></label>   
  32.   
  33.             </fieldset>  
  34.         </div>  
  35.   
  36.         <div data-role="fieldcontain">  
  37.             <fieldset data-role="controlgroup">  
  38.                 <legend>喜欢的颜色:</legend>  
  39.   
  40.                 <input type="checkbox" name="favoritecolor" id="favoritecolor1" value="Green">  
  41.                 <label for="favoritecolor1">绿色</label>   
  42.   
  43.                 <input type="checkbox" name="favoritecolor" id="favoritecolor2" value="Red">  
  44.                 <label for="favoritecolor2">红色</label>   
  45.   
  46.                 <input type="checkbox" name="favoritecolor" id="favoritecolor3" value="Yellow">  
  47.                 <label for="favoritecolor3">黄色</label>   
  48.   
  49.             </fieldset>  
  50.         </div>  
  51.   
  52.             <input type="submit" name="submit" value="Send"  />  
  53.         </div>      
  54.           
  55.         </form>  
  56.   
  57.     </div>  
  58.   
  59. </div>  
  60.   
  61. </body>  
  62. </html>  

运行的效果如下:



解释一下代码中的一些东西:data-role="fieldcontain"是为了将内容进行分块,主要的功能就是在每个区域后面加上一条横线,便于区分区域。例如途中“女”字下面的那条线。data-role="controlgroup"是为了使其所包围的内容更加的紧凑更像一个整体。读者可以将代码中的对应的东西删去看一下效果。

最后将代码中的<fieldset data-role="controlgroup">修改为<fieldset data-role="controlgroup" data-type="horizontal">,可以实现按钮的横向排列。

简单介绍一下select menu,对于一个做网页开发的人来说,这个应该就是最简单的了,所以我也不多说了,为了保证我自己以后需要的时候方便查找,我还是简单的写一下,将来方便.

代码如下:

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <title>Form Example 6</title>  
  5. <meta name="viewport" content="width=device-width, initial-scale=1">  
  6. <link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />  
  7. <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>  
  8. <script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>  
  9. </head>  
  10. <body>  
  11. <div data-role="page">  
  12.     <div data-role="header">  
  13.         <h1>Form Demo</h1>  
  14.     </div>  
  15.     <div data-role="content">  
  16.         <form action="echo.cfm" method="post">  
  17.         <div data-role="fieldcontain">  
  18.             <fieldset data-role="controlgroup">  
  19.                 <legend>Trip Setup:</legend>  
  20.                 <label for="location">Location</label>  
  21.                 <select name="location" id="location">  
  22.                     <option value="Home">Home</option>  
  23.                     <option value="Work">Work</option>  
  24.                     <option value="Moon">Moon</option>  
  25.                     <option value="Airport">Airport</option>  
  26.                 </select>  
  27.                 <label for="time">Time</label>  
  28.                 <select name="time" id="time">  
  29.                     <option value="Morning">Morning</option>  
  30.                     <option value="Afternoon">Afternoon</option>  
  31.                     <option value="Evening">Evening</option>  
  32.                 </select>  
  33.                 <label for="time">Meal</label>  
  34.                 <select name="meal" id="meal">  
  35.                     <option value="Meat">Meat</option>  
  36.                     <option value="Vegan">Vegan</option>  
  37.                     <option value="Kosher">Kosher</option>  
  38.                 </select>  
  39.             </fieldset>  
  40.         </div>  
  41.         <div data-role="fieldcontain">  
  42.             <input type="submit" name="submit" value="Send"  />  
  43.         </div>      
  44.         </form>  
  45.     </div>  
  46. </div>  
  47. </body>  
  48. </html>  

效果如下:


在点击的时候,默认是调用手机上的原生的显示方式,因为没有在手机上测试,所以就不截图了。

最后将代码中的<fieldset data-role="controlgroup">修改为<fieldset data-role="controlgroup" data-type="horizontal">,可以实现select按钮的横向排列。


今天介绍一下搜索框、滑动按钮(Slider)、开关(Flip toggle switch),我写的东西都是比较简单的,所以还需要读者认真的去研究官方的API。

首先给一个搜索框的代码:

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <title>Form Example 8</title>  
  5. <meta name="viewport" content="width=device-width, initial-scale=1">  
  6. <link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />  
  7. <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>  
  8. <script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>  
  9. </head>  
  10. <body>  
  11. <div data-role="page">  
  12.     <div data-role="header">  
  13.         <h1>Form Demo</h1>  
  14.     </div>  
  15.     <div data-role="content">  
  16.         <form action="echo.cfm" method="post">  
  17.         <div data-role="fieldcontain">  
  18.             <label for="name">姓名:</label>  
  19.             <input type="search" name="name" id="name" value=""  />  
  20.         </div>      
  21.         <div data-role="fieldcontain">  
  22.             <input type="submit" name="submit" value="搜索"  />  
  23.         </div>      
  24.         </form>  
  25.     </div>  
  26. </div>  
  27. </body>  
  28. </html>  

效果如下:


搜索框中默认为空,也没有后面的×号。当我们输入内容的时候会自动出现。


然后看一段滑动按钮(Slider)的代码:

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <title>Form Example 10</title>  
  5. <meta name="viewport" content="width=device-width, initial-scale=1">  
  6. <link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />  
  7. <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>  
  8. <script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>  
  9. </head>  
  10. <body>  
  11. <div data-role="page">  
  12.     <div data-role="header">  
  13.         <h1>Form Demo</h1>  
  14.     </div>  
  15.     <div data-role="content">  
  16.         <form action="echo.cfm" method="post">  
  17.         <div data-role="fieldcontain">  
  18.             <label for="coolness">音量:</label>  
  19.             <input type="range" name="coolness" id="coolness" min="0" max="100" value="22" data-highlight="true">  
  20.         </div>      
  21.         <div data-role="fieldcontain">  
  22.             <input type="submit" name="submit" value="Send"  />  
  23.         </div>      
  24.         </form>  
  25.     </div>  
  26. </div>  
  27. </body>  
  28. </html>  

效果如下:


代码中min、max、value相信大家都可以看懂。默认的情况每滑动一下变化为1,我们可以为其添加step属性,其值为你想改变的数。


下面给出一个开关(Flip toggle switch)的代码:

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <title>Form Example 9</title>  
  5. <meta name="viewport" content="width=device-width, initial-scale=1">  
  6. <link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />  
  7. <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>  
  8. <script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>  
  9. <style>  
  10.     div.ui-slider-switch { width: 9em }  
  11. </style>  
  12. </head>  
  13. <body>  
  14. <div data-role="page">  
  15.     <div data-role="header">  
  16.         <h1>Form Demo</h1>  
  17.     </div>  
  18.     <div data-role="content">  
  19.         <form action="echo.cfm" method="post">  
  20.         <div data-role="fieldcontain">  
  21.             <label for="gender">性别:</label>  
  22.             <select name="gender" id="gender" data-role="slider" >  
  23.                 <option value="0"></option>  
  24.                 <option value="1"></option>  
  25.             </select>  
  26.         </div>      
  27.         <div data-role="fieldcontain">  
  28.             <input type="submit" name="submit" value="Send"  />  
  29.         </div>      
  30.         </form>  
  31.     </div>  
  32. </div>  
  33. </body>  
  34. </html>  



如果想学习更多还请多看看官方的DEMO。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值