@@ -18,6 +18,9 @@ var AutoComplete = (function () {
1818 method : "GET" ,
1919 noResult : "No result" ,
2020 paramName : "q" ,
21+ headers : {
22+ "Content-type" : "application/x-www-form-urlencoded"
23+ } ,
2124 select : function ( input , item ) {
2225 attr ( input , { "data-autocomplete-old-value" : input . value = attr ( item , "data-autocomplete-value" , item . innerHTML ) } ) ;
2326 } ,
@@ -154,7 +157,7 @@ var AutoComplete = (function () {
154157 lisCount ,
155158 liActive ;
156159
157- if ( keyCode == 13 && attrClass ( result ) . indexOf ( "open" ) != - 1 ) {
160+ if ( keyCode == 13 && attr ( result , "class" ) . indexOf ( "open" ) != - 1 ) {
158161 liActive = result . querySelector ( "li.active" ) ;
159162 if ( liActive !== null ) {
160163 self . _args . select ( input , liActive ) ;
@@ -164,6 +167,7 @@ var AutoComplete = (function () {
164167
165168 if ( keyCode == 38 || keyCode == 40 ) {
166169 liActive = result . querySelector ( "li.active" ) ;
170+
167171 if ( liActive ) {
168172 currentIndex = Array . prototype . indexOf . call ( liActive . parentNode . children , liActive ) ;
169173 position = currentIndex + ( keyCode - 39 ) ;
@@ -251,16 +255,22 @@ var AutoComplete = (function () {
251255 request . abort ( ) ;
252256 }
253257
254- var method = custParams . method ,
255- url = custParams . url ;
258+ var headers = custParams . headers ,
259+ headersKeys = Object . getOwnPropertyNames ( headers ) ,
260+ method = custParams . method ,
261+ url = custParams . url ,
262+ i ;
256263
257264 if ( method . match ( / ^ G E T $ / i) ) {
258265 url += "?" + queryParams ;
259266 }
260267
261268 request = new XMLHttpRequest ( ) ;
262269 request . open ( method , url , true ) ;
263- request . setRequestHeader ( "Content-type" , "application/x-www-form-urlencoded" ) ;
270+
271+ for ( i = headersKeys . length - 1 ; i >= 0 ; i -- ) {
272+ request . setRequestHeader ( headersKeys [ i ] , headers [ headersKeys [ i ] ] ) ;
273+ }
264274
265275 request . onreadystatechange = function ( ) {
266276 if ( request . readyState == 4 && request . status == 200 ) {
@@ -316,7 +326,7 @@ function attr(item, attrs, defaultValue) {
316326
317327function attrClass ( item , value ) {
318328 if ( item ) {
319- return attr ( item , ! value ? "class" : { "class" : value } ) ;
329+ return attr ( item , typeof value === undefined ? "class" : { "class" : value } ) ;
320330 }
321331}
322332
0 commit comments