province.js
2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
var defaults = {
s1: 'provid',
s2: 'cityid',
s3: 'areaid',
v1: null,
v2: null,
v3: null
};
var $form;
var form;
var $;
layui.define(['jquery', 'form'], function () {
$ = layui.jquery;
form = layui.form;
$form = $('form');
treeSelect(defaults);
});
function treeSelect(config) {
config.v1 = config.v1 ? config.v1 : '';
config.v2 = config.v2 ? config.v2 : '';
config.v3 = config.v3 ? config.v3 : '';
$.each(threeSelectData, function (k, v) {
appendOptionTo($form.find('select[name=' + config.s1 + ']'), k, v.val, config.v1, k);
});
form.render();
cityEvent(config);
areaEvent(config);
form.on('select(' + config.s1 + ')', function (data) {
cityEvent(data);
form.on('select(' + config.s2 + ')', function (data) {
areaEvent(data);
});
});
function cityEvent(data) {
alert(1);
$form.find('select[name=' + config.s2 + ']').html("");
config.v1 = data.value ? data.value : config.v1;
$.each(threeSelectData, function (k, v) {
if (v.val == config.v1) {
if (v.items) {
$.each(v.items, function (kt, vt) {
appendOptionTo($form.find('select[name=' + config.s2 + ']'), kt, vt.val, config.v2, kt);
});
}
}
});
form.render();
config.v2 = $('select[name=' + config.s2 + ']').val();
areaEvent(config);
}
function areaEvent(data) {
$form.find('select[name=' + config.s3 + ']').html("");
config.v2 = data.value ? data.value : config.v2;
$.each(threeSelectData, function (k, v) {
if (v.val == config.v1) {
if (v.items) {
$.each(v.items, function (kt, vt) {
if (vt.val == config.v2) {
$.each(vt.items, function (ka, va) {
appendOptionTo($form.find('select[name=' + config.s3 + ']'), ka, va, config.v3, ka);
});
}
});
}
}
});
form.render();
form.on('select(' + config.s3 + ')', function (data) { });
}
function appendOptionTo($o, k, v, d,cks) {
var $opt = $("<option>").text(k).val(v);
if (v == d) { $opt.attr("selected", "selected") }
$opt.appendTo($o);
}
}