效果图:求赞赞
mui 日期选择 和省市区三级联动实现mui 日期选择 和省市区三级联动实现
代码部分

<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
	<title></title>
	<!--标准mui.css-->
	<link rel="stylesheet" href="css/mui.min.css">
	<!--App自定义的css-->
	<link rel="stylesheet" type="text/css" href="css/app.css" />
	<!--<link href="../css/mui.picker.css" rel="stylesheet" />
	<link href="../css/mui.dtpicker.css" rel="stylesheet" />-->
	<link rel="stylesheet" type="text/css" href="css/mui.poppicker.css" />
	<link rel="stylesheet" type="text/css" href="css/mui.picker.min.css" />
	<style>
	.mui-btn-block{
		padding:0;
	}
	.btn{
		width: 100%;
		height: 30px;
	}
	</style>
</head>

<body>
	<header class="mui-bar mui-bar-nav">
		<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
		<h1 class="mui-title">dtpicker(日期时间选择器)</h1>
	</header>
	<div class="mui-content">
		<div class="mui-content-padded">
			
			<h5 class="mui-content-padded">指定类型</h5>
			<div id='result' data-options='{"type":"date"}' class="btn mui-btn mui-btn-block" >日期选择</div>
			<div id="address"  class=" mui-btn mui-btn-block">地区选择</div>

		</div>
	</div>
	<script src="js/mui.min.js"></script>
<!--	<script src="../js/mui.picker.js"></script>-->
	<script src="js/mui.dtpicker.js"></script>
	<script src="js/mui.picker.min.js"></script>
	<script src="js/city.data-3.js"></script>
	<script src="js/mui.poppicker.js"></script>
	<script>
		
		(function($) {
			$.init();
			var result = $('#result')[0];
			var btns = $('.btn');
			var  address=$('#address')[0];
			btns.each(function(i, btn) {
				btn.addEventListener('tap', function() {
					var _self = this;
					if(_self.picker) {
						_self.picker.show(function (rs) {
							result.innerText =rs.text;
							
							_self.picker.dispose();
							_self.picker = null;
						});
					} else {
						var optionsJson = this.getAttribute('data-options') || '{}';
						var options = JSON.parse(optionsJson);
						var id = this.getAttribute('id');
						/*
						 * 
						 * 首次显示时实例化组件
						 * 示例为了简洁,将 options 放在了按钮的 dom 上
						 * 也可以直接通过代码声明 optinos 用于实例化 DtPicker
						 */
						_self.picker = new $.DtPicker(options);
						_self.picker.show(function(rs) {
							/*
							 * rs.value 拼合后的 value
							 * rs.text 拼合后的 text
							 * rs.y 年,可以通过 rs.y.vaue 和 rs.y.text 获取值和文本
							 * rs.m 月,用法同年
							 * rs.d 日,用法同年
							 * rs.h 时,用法同年
							 * rs.i 分(minutes 的第二个字母),用法同年
							 */
							result.innerText =  rs.text;
							/* 
							 * 返回 false 可以阻止选择框的关闭
							 * return false;
							 */
							/*
							 * 释放组件资源,释放后将将不能再操作组件
							 * 通常情况下,不需要示放组件,new DtPicker(options) 后,可以一直使用。
							 * 当前示例,因为内容较多,如不进行资原释放,在某些设备上会较慢。
							 * 所以每次用完便立即调用 dispose 进行释放,下次用时再创建新实例。
							 */
							_self.picker.dispose();
							_self.picker = null;
						});
					}
					
				}, false);
			});
					var city = '';
    var address = document.getElementById("address");
    address.addEventListener('tap',function(){
        var city_picker = new mui.PopPicker({
            layer:3 //插件显示的列数
        });
        city_picker.setData(cityData3);//显示的内容,json格式。
        city_picker.show(function(items) {//弹出列表并在里面写业务代码。
            if((items[0] || {}).text == undefined) {
                    (items[0] || {}).text = "";
                } else if((items[1] || {}).text == undefined) {
                    (items[1] || {}).text = "";
                } else if((items[2] || {}).text == undefined) {
                    (items[2] || {}).text = "";
                }
                city = (items[0] || {}).text + "-" + (items[1] || {}).text + "-" + (items[2] || {}).text;
                console.log(city);
                address.innerText =city
        });
        
    })
		})(mui);

	</script>
</body>

相关文章: