_postal_search.js
2.82 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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import Fuse from 'fuse.js'
// import DataTable from 'datatables.net-dt';
(function( $ ) {
if($('.postal-search-data').val()) {
var list = JSON.parse($('.postal-search-data').val());
const fuseOptions = {
// isCaseSensitive: false,
// includeScore: false,
// shouldSort: true,
// includeMatches: false,
// findAllMatches: false,
minMatchCharLength: 3,
// location: 0,
threshold: 0.0,
// distance: 100,
// useExtendedSearch: false,
// ignoreLocation: false,
// ignoreFieldNorm: false,
// fieldNormWeight: 1,
keys: [
"GEOKEY"
]
};
const fuse = new Fuse(list, fuseOptions);
// var table = new DataTable('.postal-search-results',
// {
// responsive: true,
// paging:true,
// "lengthMenu":-1,
// "oLanguage": {
// "sSearch": "Enter Full Postal Code:"
// }
// }
// );
// $('.search-postal-preferred').on('change', function() {
// var preferred = $(this).find('option:selected').val();
// $('.postal-search-results tr').removeClass('hidden');
// if(preferred == 'YES' || preferred == 'NO') {
// $('.postal-search-results tr').each(function() {
// if(!$(this).hasClass('header')) {
// var _preferred = $(this).data('preferred');
// if(preferred != _preferred) {
// $(this).addClass('hidden');
// }
// }
// });
// }
// });
$('.postal-code-search').on('keyup', function() {
if($(this).val().length < 3) {
$('.preferred').val('');
} else {
$('.preferred').val('NOT KNOWN');
var search_val = $(this).val().replace(/ /g,'');
var results = fuse.search(search_val);
if(results.length <= 3) {
console.log("LENGTH == " + results.length);
for(var i = 0;i < results.length;++i) {
if(results[i].item['PREFERRED'] == 'YES') {
console.log(results[i].item);
$('.preferred').val('YES');
} else if(results[i].item['PREFERRED'] == 'NO') {
$('.preferred').val('NO');
} else {
$('.preferred').val('NOT AVAILABLE');
}
}
}
}
});
}
}( jQuery ));