From 000368b5018ce48794df19cd545e1721cad6ea92 Mon Sep 17 00:00:00 2001 From: morning-star <26325820+Sight-wcg@users.noreply.github.com> Date: Mon, 30 Dec 2024 22:41:44 +0800 Subject: [PATCH] =?UTF-8?q?fix(form):=20=E4=BF=AE=E5=A4=8D=20IE8=20?= =?UTF-8?q?=E4=B8=AD=20checkbox=20=E5=8D=8A=E9=80=89=E9=97=AE=E9=A2=98=20(?= =?UTF-8?q?#2442)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(table): 修复 table 在 IE8 下报错问题 * update code * fix(form): 修复 IE8 中 checkbox 半选问题 * chore: 恢复非 IE8 改动 --- src/modules/form.js | 86 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 70 insertions(+), 16 deletions(-) diff --git a/src/modules/form.js b/src/modules/form.js index 0831bd7a..4cc1e9af 100644 --- a/src/modules/form.js +++ b/src/modules/form.js @@ -10,6 +10,7 @@ layui.define(['lay', 'layer', 'util'], function(exports){ var util = layui.util; var hint = layui.hint(); var device = layui.device(); + var needCheckboxFallback = lay.ie && parseFloat(lay.ie) === 8; var MOD_NAME = 'form'; var ELEM = '.layui-form'; @@ -944,7 +945,13 @@ layui.define(['lay', 'layer', 'util'], function(exports){ title = skin === 'switch' ? title.split('|') : [title]; if(typeof othis.attr('lay-ignore') === 'string') return othis.show(); - + + // 处理 IE8 indeterminate 属性重新定义 get set 后无法设置值的问题 + if(needCheckboxFallback){ + toggleAttribute.call(check, 'lay-form-sync-checked', check.checked); + !check.checked && toggleAttribute.call(check, 'lay-form-sync-indeterminate', check.indeterminate); + } + // 替代元素 var reElem = $(['