You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2021/06/24 13:39:11 UTC

[wicket] branch master updated: WICKET-6896 AutoCompleteTextField re-opens dropdown item list after item has been selected

This is an automated email from the ASF dual-hosted git repository.

mgrigorov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/wicket.git


The following commit(s) were added to refs/heads/master by this push:
     new 99f3c12  WICKET-6896 AutoCompleteTextField re-opens dropdown item list after item has been selected
99f3c12 is described below

commit 99f3c12e74dcc047dea95b6b1691967bc89e18a9
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
AuthorDate: Thu Jun 24 16:36:07 2021 +0300

    WICKET-6896 AutoCompleteTextField re-opens dropdown item list after item has been selected
    
    (cherry picked from commit 45f0333f99da5f5eb21e7b9f659959c527780084)
---
 .../ajax/markup/html/autocomplete/wicket-autocomplete.js | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

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 7d23fbe..0aa39b4 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
@@ -77,6 +77,12 @@
 		// timeout handler that cancels the hiding of the menu if the focus is still on menu items
 		var hideAutoCompleteTimer;
 
+		// A flag indicating whether the 'change' event has been triggered manually after selection
+		// from the menu.
+		// In this case we don't want to render the menu.
+		// It is usually rendered on successful Ajax response
+		var isTriggeredChange = false;
+
 		function initialize(){
 			var isShowing = false;
 			// Remove the autocompletion menu if still present from
@@ -450,9 +456,10 @@
 			}
 			
 			if (triggerChangeOnHide) {
+				triggerChangeOnHide = false;
 				var input = Wicket.$(ajaxAttributes.c);
+				isTriggeredChange = true;
 				jQuery(input).trigger('change');
-				triggerChangeOnHide = false;
 			}
 		}
 
@@ -677,7 +684,12 @@
 					}
 					setSelected(selectedIndex);
 				}
-				showAutoComplete();
+
+				if (isTriggeredChange) {
+					isTriggeredChange = false;
+				} else {
+					showAutoComplete();
+				}
 			} else {
 				hideAutoComplete();
 			}