From 235af19b2e6668ccc3cfa63eb36c8f15c58e0220 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Thu, 2 Jul 2026 15:42:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20UiFile=20multiple=20=E2=80=94=20resultVa?= =?UTF-8?q?lue/set=5Fformdata=20support=20file=20arrays;=20Form=20required?= =?UTF-8?q?=20check=20handles=20arrays?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bricks/form.js | 10 ++++++++-- bricks/input.js | 15 +++++++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/bricks/form.js b/bricks/form.js index 5959a33..c4cf01f 100644 --- a/bricks/form.js +++ b/bricks/form.js @@ -336,7 +336,10 @@ bricks.FormBase = class extends bricks.Layout { var w = this.name_inputs[name]; var d = w.getValue(); - if (w.required && ( d[name] == '' || d[name] === null)){ + var val = d[name]; + var empty = (val === '' || val === null || val === undefined || + (Array.isArray(val) && val.length === 0)); + if (w.required && empty){ bricks.debug('data=', data, 'd=', d); new bricks.Error({title:bricks.app.i18n._('Requirement'), message:bricks.app.i18n._('required field must input') + '"' + w.label + '"'}) w.focus(); @@ -391,7 +394,10 @@ bricks.FormBase = class extends bricks.Layout { var w = this.name_inputs[name]; if (w.parent.is_disabled()) continue; var d = w.getValue(); - if (w.required && ( d[name] == '' || d[name] === null)){ + var val = d[name]; + var empty = (val === '' || val === null || val === undefined || + (Array.isArray(val) && val.length === 0)); + if (w.required && empty){ new bricks.Error({title:bricks.app.i18n._('Requirement'), message:bricks.app.i18n._('required field must input') + '"' + w.label + '"'}) w.focus(); return; diff --git a/bricks/input.js b/bricks/input.js index 4042cfe..5a52a51 100644 --- a/bricks/input.js +++ b/bricks/input.js @@ -462,14 +462,25 @@ bricks.UiFile = class extends bricks.VBox { console.log('"changed" fired', this.getValue()); } set_formdata(fd){ - fd.append(this.name, this.resultValue()); + var v = this.resultValue(); + if (this.opts.multiple && Array.isArray(v)){ + for (var i=0; i