dtpicker.html 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  6. <title></title>
  7. <!--标准mui.css-->
  8. <link rel="stylesheet" href="../css/mui.min.css">
  9. <!--App自定义的css-->
  10. <link rel="stylesheet" type="text/css" href="../css/app.css" />
  11. <!--<link href="../css/mui.picker.css" rel="stylesheet" />
  12. <link href="../css/mui.dtpicker.css" rel="stylesheet" />-->
  13. <link rel="stylesheet" type="text/css" href="../css/mui.picker.min.css" />
  14. <style>
  15. html,
  16. body,
  17. .mui-content {
  18. height: 0px;
  19. margin: 0px;
  20. background-color: #efeff4;
  21. }
  22. h5.mui-content-padded {
  23. margin-left: 3px;
  24. margin-top: 20px !important;
  25. }
  26. h5.mui-content-padded:first-child {
  27. margin-top: 12px !important;
  28. }
  29. .mui-btn {
  30. font-size: 16px;
  31. padding: 8px;
  32. margin: 3px;
  33. }
  34. .ui-alert {
  35. text-align: center;
  36. padding: 20px 10px;
  37. font-size: 16px;
  38. }
  39. * {
  40. -webkit-touch-callout: none;
  41. -webkit-user-select: none;
  42. }
  43. </style>
  44. </head>
  45. <body>
  46. <header class="mui-bar mui-bar-nav">
  47. <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
  48. <h1 class="mui-title">dtpicker(日期时间选择器)</h1>
  49. </header>
  50. <div class="mui-content">
  51. <div class="mui-content-padded">
  52. <h5 class="mui-content-padded">常规示例</h5>
  53. <button id='demo1' data-options='{}' class="btn mui-btn mui-btn-block">选择日期时间 ...</button>
  54. <h5 class="mui-content-padded">设定年份区间</h5>
  55. <button id='demo2' data-options='{"type":"date","beginYear":2014,"endYear":2016}' class="btn mui-btn mui-btn-block">选择日期 ...</button>
  56. <h5 class="mui-content-padded">设定选中的时间</h5>
  57. <button id='demo3' data-options='{"value":"2015-10-10 10:10","beginYear":2010,"endYear":2020}' class="btn mui-btn mui-btn-block">选择日期时间 ...</button>
  58. <h5 class="mui-content-padded">指定类型</h5>
  59. <button id='demo4' data-options='{"type":"date"}' class="btn mui-btn mui-btn-block">选择日期 ...</button>
  60. <button id='demo5' data-options='{"type":"time"}' class="btn mui-btn mui-btn-block">选择时间 ...</button>
  61. <button id='demo6' data-options='{"type":"month"}' class="btn mui-btn mui-btn-block">选择月份 ...</button>
  62. <h5 class="mui-content-padded">自定义数据</h5>
  63. <button id='demo7' data-options='{"type":"hour","customData":{"h":[{"text":"上午","value":"上午"},{"text":"下午","value":"下午"},{"text":"晚上","value":"晚上"}]},"labels":["年", "月", "日", "时段", "分"]}' class="btn mui-btn mui-btn-block">选择时段 ...</button>
  64. <div id='result' class="ui-alert"></div>
  65. </div>
  66. </div>
  67. <script src="../js/mui.min.js"></script>
  68. <!--<script src="../js/mui.picker.js"></script>
  69. <script src="../js/mui.dtpicker.js"></script>-->
  70. <script src="../js/mui.picker.min.js"></script>
  71. <script>
  72. (function($) {
  73. $.init();
  74. var result = $('#result')[0];
  75. var btns = $('.btn');
  76. btns.each(function(i, btn) {
  77. btn.addEventListener('tap', function() {
  78. var _self = this;
  79. if(_self.picker) {
  80. _self.picker.show(function (rs) {
  81. result.innerText = '选择结果: ' + rs.text;
  82. _self.picker.dispose();
  83. _self.picker = null;
  84. });
  85. } else {
  86. var optionsJson = this.getAttribute('data-options') || '{}';
  87. var options = JSON.parse(optionsJson);
  88. var id = this.getAttribute('id');
  89. /*
  90. * 首次显示时实例化组件
  91. * 示例为了简洁,将 options 放在了按钮的 dom 上
  92. * 也可以直接通过代码声明 optinos 用于实例化 DtPicker
  93. */
  94. _self.picker = new $.DtPicker(options);
  95. _self.picker.show(function(rs) {
  96. /*
  97. * rs.value 拼合后的 value
  98. * rs.text 拼合后的 text
  99. * rs.y 年,可以通过 rs.y.vaue 和 rs.y.text 获取值和文本
  100. * rs.m 月,用法同年
  101. * rs.d 日,用法同年
  102. * rs.h 时,用法同年
  103. * rs.i 分(minutes 的第二个字母),用法同年
  104. */
  105. result.innerText = '选择结果: ' + rs.text;
  106. /*
  107. * 返回 false 可以阻止选择框的关闭
  108. * return false;
  109. */
  110. /*
  111. * 释放组件资源,释放后将将不能再操作组件
  112. * 通常情况下,不需要示放组件,new DtPicker(options) 后,可以一直使用。
  113. * 当前示例,因为内容较多,如不进行资原释放,在某些设备上会较慢。
  114. * 所以每次用完便立即调用 dispose 进行释放,下次用时再创建新实例。
  115. */
  116. _self.picker.dispose();
  117. _self.picker = null;
  118. });
  119. }
  120. }, false);
  121. });
  122. })(mui);
  123. </script>
  124. </body>
  125. </html>