Repository: wicket
Updated Branches:
  refs/heads/wicket-6.x 4b2eae7b0 -> f3c246161


WICKET-6366 check input still on page

this closes #220


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/f3c24616
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/f3c24616
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/f3c24616

Branch: refs/heads/wicket-6.x
Commit: f3c24616127eee055f233fa81af6148da9478fd2
Parents: 4b2eae7
Author: Sven Meier <[email protected]>
Authored: Mon Jun 5 14:37:04 2017 +0200
Committer: Sven Meier <[email protected]>
Committed: Mon Jun 5 14:39:21 2017 +0200

----------------------------------------------------------------------
 .../html/autocomplete/wicket-autocomplete.js    | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/f3c24616/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
index eef836f..37c359a 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
@@ -376,18 +376,20 @@
                        var attrs = {
                                u: callbackUrl,
                                pre: [ function (attributes) {
-                                       // since attrs.c is not set, we have to 
check existence by ourself
-                                       if (!Wicket.$$(elementId)) {
+                                       var input = Wicket.$(elementId);
+                                       if (!input) {
+                                               // WICKET-6366 input might no 
longer be on page
                                                return false;
                                        }
                                        
                                        var activeIsInitial = 
(document.activeElement === initialElement);
-                                       var elementVal =  
Wicket.$(elementId).value;
-                                       var hasMinimumLength = 
elementVal.length >= minInputLength;
+                                       var hasMinimumLength = 
input.value.length >= minInputLength;
                                        var result = hasMinimumLength && 
activeIsInitial;
+                                       
                                        if (!result) {
                                                hideAutoComplete();
                                        }
+                                       
                                        return result;
                                }],
                                ep: {},
@@ -676,7 +678,7 @@
                        }
 
                        if(elementCount>0){
-                               if(cfg.preselect === true){
+                               if (cfg.preselect === true){
                                        var selectedIndex = 
defaultSelection?defaultSelection:0;
                                        for(var ec = 0; ec < elementCount; 
ec++) {
                                                var selectableElement = 
selectableElements[ec];
@@ -718,8 +720,12 @@
                function scheduleEmptyCheck() {
                        window.setTimeout(function() {
                                var input=Wicket.$(elementId);
-                               if (!cfg.showListOnEmptyInput && (input.value 
=== null || input.value === "")) {
-                                       hideAutoComplete();
+                               
+                               // WICKET-6366 input might no longer be on page
+                               if (input) {
+                                       if (!cfg.showListOnEmptyInput && 
(input.value === null || input.value === "")) {
+                                               hideAutoComplete();
+                                       }
                                }
                        }, 100);
                }

Reply via email to