From 008e6cb7d0d155e61b50c88bf72f8a01f2f39db4 Mon Sep 17 00:00:00 2001 From: morning-star <26325820+Sight-wcg@users.noreply.github.com> Date: Tue, 6 May 2025 14:51:38 +0800 Subject: [PATCH] =?UTF-8?q?fix(form-select):=20=E4=BF=AE=E5=A4=8D=20`check?= =?UTF-8?q?box/radio`=20=E5=9C=A8=20WebKit/537.36=20=E7=9A=84=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=20(#2637)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(form-select): 修复 `checkbox/radio` 在 WebKit/537.36 的异常 * docs: 优化部分注释文案,避免非技术人员理解错位 尽量避免词汇:监听、侦听。可用事件「触发」或「响应」等相近含义的词语替代 * Revert "docs: 优化部分注释文案,避免非技术人员理解错位" This reverts commit 8cc9949bdfa36a3ff052bbdd95beea26fd3793ce. --------- Co-authored-by: 贤心 <3277200+sentsim@users.noreply.github.com> --- src/modules/form.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/form.js b/src/modules/form.js index abbb71a3..5e1ee0f1 100644 --- a/src/modules/form.js +++ b/src/modules/form.js @@ -10,7 +10,6 @@ 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'; @@ -21,6 +20,11 @@ layui.define(['lay', 'layer', 'util'], function(exports){ var OUT_OF_RANGE = 'layui-input-number-out-of-range'; var BAD_INPUT = 'layui-input-number-invalid'; + // ie8 中可以获取到 input 元素的 'indeterminate' 属性描述符,但重新定义 getter/setter 无效,无报错 + // AppleWebKit/537.36 无法获取 input 元素任意属性的属性描述符(包括lookupGetter),但可以重新定义 getter/setter + var needCheckboxFallback = (lay.ie && parseFloat(lay.ie) === 8) + || typeof Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'checked') === 'undefined' + var Form = function(){ this.config = { // 内置的验证规则