luci-base: ui.js: fix input value reading for select widgets

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>
(cherry picked from commit e3ef463ccd)
This commit is contained in:
Jo-Philipp Wich 2020-05-02 23:51:22 +02:00
parent 9be5a3df0b
commit 243c6c525d

View file

@ -773,7 +773,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');
}
@ -792,7 +792,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"]');
@ -805,7 +805,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 = '';