通过jQuery的ajax与 bootstrap的栅格化实现省市级三级下拉列表

1.需要的js插件

  1. jquery.js;
  2. bootstrap.js;
  • 注意:导入bootstrap.js时导入bootstrap.css;

2.各省市区的json文件

3. 代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<link rel="stylesheet" type="text/css" href="../css/bootstrap.css" />
		<script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
		<script src="../js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
		<style type="text/css">
			* {
				margin: 10px;
				padding: 0;

			}
		</style>
	</head>
	<body>


		<div class="container">

			<div class="row">
				<div class="col-lg-3">
					<select class="form-control" id="s1">
					</select>
				</div>
				<div class="col-lg-3">
					<select class="form-control" id="s2">
					</select>
				</div>
				<div class="col-lg-3">
					<select class="form-control" id="s3">
					</select>
				</div>
			</div>


		</div>



		<script type="text/javascript">
			// 获取页面元素
			var s1 = document.getElementById('s1');
			var s2 = document.getElementById('s2');
			var s3 = document.getElementById('s3');
			
		

			function AJAX(path) {
				$.ajax({
					type: 'get',
					url: path,
					dataType: 'json',
					success: function(data) {
						console.log('请求成功!', data)
						for (var i in data) {
							s1.options.add(new Option(data[i].p))
						}
						// 【下拉列表事件】
						s1.onchange = function() {
							//清空数据
							s2.options.length = 0;
							s3.options.length = 0;
							// 添加数据
							var s1_data = this.options[this.selectedIndex].innerText;

							for (var i in data) {
								if (data[i].p == s1_data) {
									for (var j in data[i]) {
										if (j != 'p') {
											s2.options.add(new Option(data[i][j].c))
										}
									}
								}
							}
						}

						s2.onmouseup = function() {
							//清空数据
							s3.options.length = 0;
							// 添加数据
							var s2_data = this.options[this.selectedIndex].innerText;
							// console.log(s2_data)
							for (var i in data) {
								if (data[i].p == s1.options[s1.selectedIndex].innerText) {
									for (var j in data[i]) {
										if (j != 'p') {
											if (data[i][j].c == s2.options[s2.selectedIndex].innerText) {
												for (var k in data[i][j]) {
													if (k != 'c') {
														s3.options.add(new Option(data[i][j][k]))
													}
												}
											}
										}
									}

								}
							}

						}
					},
					error: function() {
						console.log('请求失败!')
					}
				})
			}
			AJAX('provcityarea.json');
		</script>
	</body>
</html>

4 实现效果展示

三级下拉列表

猜你喜欢

转载自blog.csdn.net/qq_40994735/article/details/108013643
今日推荐