diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php
index 2dc4b698..777cc324 100644
--- a/adminer/include/adminer.inc.php
+++ b/adminer/include/adminer.inc.php
@@ -322,7 +322,7 @@ class Adminer {
echo "
" . ($functions || $grouping ? ""
. on_help("getTarget(event).value && getTarget(event).value.replace(/ |\$/, '(') + ')'", 1)
- . script("qsl('select').onchange = function () { helpClose();" . ($key !== "" ? "" : " this.nextSibling.nextSibling.nextSibling.onchange();") . " };", "")
+ . script("qsl('select').onchange = function () { helpClose();" . ($key !== "" ? "" : " qsl('select, input', this.parentNode).onchange();") . " };", "")
. "($column)" : $column) . "
\n";
$i++;
}
diff --git a/adminer/static/functions.js b/adminer/static/functions.js
index 7de08c93..8a575781 100644
--- a/adminer/static/functions.js
+++ b/adminer/static/functions.js
@@ -9,10 +9,11 @@ function qs(selector) {
/** Get last element by selector
* @param string
+* @param [HTMLElement] defaults to document
* @return HTMLElement
*/
-function qsl(selector) {
- var els = qsa(selector, document);
+function qsl(selector, context) {
+ var els = qsa(selector, context || document);
return els[els.length - 1];
}