jsautocomplete_builder 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/jsautocomplete_builder.rb +24 -17
- metadata +1 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e6f46cdcc2bc2b61b1b37263ed9c87af441f501341c2530f13f6216c3ad03e0
|
4
|
+
data.tar.gz: 0154aa418fd6c18d536d7f500ca46a6bdde6ba7b14c90a976d4d92fe37973c35
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2030c12af466b3b7bfdb87806d94b2d34b81f81851c05108c6b2dae251026258f1515390c6b8e113e10a501a8753642434cabd41e7267036231c2e3b7b224c83
|
7
|
+
data.tar.gz: 485aa2efbf0424957e9912e94c09062d43903f0d5b3dd11499caea7277641243db988f399cd5ff7569ae0c81ff3aad35b4e7e7ce53893e94abb329ed13ab11ff
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
@@ -21,7 +21,7 @@ class JsAutocompleteBuilder
|
|
21
21
|
html=<<EOF
|
22
22
|
<form action='#{@server[:action]}' method='get' name='searchForm'>
|
23
23
|
|
24
|
-
<input tabindex='2' type='text' autofocus='true' onkeyup='updateList(event.keyCode, this)' onfocus='showList()' onblur='hideList()' id='search' autocomplete='off' name='q'/>
|
24
|
+
<input tabindex='2' type='text' autofocus='true' onkeyup='input = this.value; updateList(event.keyCode, this)' placeholder='search' onfocus='showList()' onblur='hideList()' id='search' autocomplete='off' name='q'/>
|
25
25
|
<input type='submit' value='search'>
|
26
26
|
<ol id='autolist'></ol>
|
27
27
|
|
@@ -107,6 +107,14 @@ EOF
|
|
107
107
|
|
108
108
|
def js()
|
109
109
|
<<EOF
|
110
|
+
const KEY_UP = 38;
|
111
|
+
const KEY_DOWN = 40;
|
112
|
+
const ESC_KEY = 27;
|
113
|
+
const ENTER_KEY = 13;
|
114
|
+
const SPACEBAR_KEY = 32;
|
115
|
+
|
116
|
+
var input = '';
|
117
|
+
|
110
118
|
function ajaxRequest(url, cFunction) {
|
111
119
|
var xhttp;
|
112
120
|
xhttp = new XMLHttpRequest();
|
@@ -131,18 +139,17 @@ EOF
|
|
131
139
|
|
132
140
|
function updateList(keyCode, e) {
|
133
141
|
|
134
|
-
|
135
|
-
if (keyCode == 27)
|
142
|
+
if (keyCode == ESC_KEY)
|
136
143
|
return
|
137
144
|
|
138
|
-
|
139
|
-
|
140
|
-
showList();
|
145
|
+
if (keyCode == KEY_DOWN) {
|
146
|
+
//showList();
|
141
147
|
li = document.getElementById('autolist').children.item(0);
|
142
148
|
e.value = li.textContent;
|
143
149
|
li.focus();
|
144
150
|
return
|
145
151
|
}
|
152
|
+
|
146
153
|
//e.value;
|
147
154
|
if (e.value.length > 0) {
|
148
155
|
ajaxFetchList(e);
|
@@ -165,16 +172,14 @@ EOF
|
|
165
172
|
|
166
173
|
function itemKeyup(keyCode, e) {
|
167
174
|
|
168
|
-
console.log('keyCode: ' + keyCode);
|
175
|
+
//console.log('keyCode: ' + keyCode);
|
169
176
|
txt = document.getElementById('search');
|
170
177
|
|
171
|
-
|
172
|
-
if (keyCode == 13 || keyCode == 32) {
|
178
|
+
if (keyCode == ENTER_KEY || keyCode == SPACEBAR_KEY) {
|
173
179
|
itemSelected(e)
|
174
180
|
}
|
175
181
|
|
176
|
-
|
177
|
-
else if (keyCode == 38) {
|
182
|
+
else if (keyCode == KEY_UP) {
|
178
183
|
if (e.previousElementSibling) {
|
179
184
|
txt.value = e.previousElementSibling.textContent;
|
180
185
|
e.previousElementSibling.focus();
|
@@ -182,14 +187,16 @@ EOF
|
|
182
187
|
else
|
183
188
|
document.getElementById('search').focus();
|
184
189
|
}
|
185
|
-
|
186
|
-
else if (keyCode ==
|
190
|
+
|
191
|
+
else if (keyCode == KEY_DOWN) {
|
187
192
|
|
188
193
|
txt.value = e.nextElementSibling.textContent;
|
189
194
|
e.nextElementSibling.focus();
|
190
195
|
}
|
191
|
-
|
192
|
-
else if (keyCode ==
|
196
|
+
|
197
|
+
else if (keyCode == ESC_KEY) {
|
198
|
+
// select the original search text value
|
199
|
+
txt.value = input;
|
193
200
|
list = document.getElementById('autolist');
|
194
201
|
list.style.display = 'none';
|
195
202
|
txt.focus();
|
@@ -208,8 +215,8 @@ EOF
|
|
208
215
|
function showList() {
|
209
216
|
|
210
217
|
console.log('parent2: ' + document.activeElement.nodeName);
|
211
|
-
txt = document.getElementById('search');
|
212
|
-
|
218
|
+
txt = document.getElementById('search');
|
219
|
+
|
213
220
|
if (txt.value.length > 0) {
|
214
221
|
list = document.getElementById('autolist');
|
215
222
|
list.style.display = 'block';
|
metadata
CHANGED
metadata.gz.sig
CHANGED
Binary file
|