From b38d7fd443a4931f4dcc57e0c351b926f17b2212 Mon Sep 17 00:00:00 2001 From: morning-star <26325820+Sight-wcg@users.noreply.github.com> Date: Fri, 14 Feb 2025 16:38:01 +0800 Subject: [PATCH] =?UTF-8?q?fix(form):=20=E4=BF=AE=E5=A4=8D=20select=20?= =?UTF-8?q?=E6=9C=AA=E9=80=89=E4=B8=AD=E6=97=B6=20form.val=20=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=88=B0=E7=9A=84=E5=80=BC=E4=B8=BA=20null=20?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=20(#2475)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/form.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/modules/form.js b/src/modules/form.js index a61f3ff7..4d18289b 100644 --- a/src/modules/form.js +++ b/src/modules/form.js @@ -158,7 +158,12 @@ layui.define(['lay', 'layer', 'util'], function(exports){ } if(/^(checkbox|radio)$/.test(item.type) && !item.checked) return; // 复选框和单选框未选中,不记录字段 - field[init_name || item.name] = othis.val(); + // select 多选用 jQuery 方式取值,未选中 option 时, + // jQuery v2.2.4 及以下版本返回 null,以上(3.x) 返回 []。 + // 统一规范化为 [],参考 https://github.com/jquery/jquery/issues/2562 + field[init_name || item.name] = (this.tagName === 'SELECT' && typeof this.getAttribute('multiple') === 'string') + ? othis.val() || [] + : this.value; }); return field;