luci-base: ui.js: fix input value reading for select widgets
authorJo-Philipp Wich <jo@mein.io>
Sat, 2 May 2020 21:51:22 +0000 (23:51 +0200)
committerJo-Philipp Wich <jo@mein.io>
Sat, 2 May 2020 21:53:03 +0000 (23:53 +0200)
Fixes: #3989
Fixes: 81effc111 ("luci-base: ui.js: assume select widget by default for ListValue widget")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
modules/luci-base/htdocs/luci-static/resources/ui.js

index 73f5b90bc5e34fbe7d9624a41a58dbcfe9495493..11c48daaeb9e22a49759a9a1f59f9d7d22dad0bc 100644 (file)
@@ -770,7 +770,7 @@ var UISelect = UIElement.extend(/** @lends LuCI.ui.Select.prototype */ {
        bind: function(frameEl) {
                this.node = frameEl;
 
-               if (this.options.widget == 'select') {
+               if (this.options.widget != 'radio' && this.options.widget != 'checkbox') {
                        this.setUpdateEvents(frameEl.firstChild, 'change', 'click', 'blur');
                        this.setChangeEvents(frameEl.firstChild, 'change');
                }
@@ -789,7 +789,7 @@ var UISelect = UIElement.extend(/** @lends LuCI.ui.Select.prototype */ {
 
        /** @override */
        getValue: function() {
-               if (this.options.widget == 'select')
+               if (this.options.widget != 'radio' && this.options.widget != 'checkbox')
                        return this.node.firstChild.value;
 
                var radioEls = this.node.querySelectorAll('input[type="radio"]');
@@ -802,7 +802,7 @@ var UISelect = UIElement.extend(/** @lends LuCI.ui.Select.prototype */ {
 
        /** @override */
        setValue: function(value) {
-               if (this.options.widget == 'select') {
+               if (this.options.widget != 'radio' && this.options.widget != 'checkbox') {
                        if (value == null)
                                value = '';