From c73cb3d781104ae74eecc70c0b495f45e943c6ec Mon Sep 17 00:00:00 2001 From: morning-star <26325820+Sight-wcg@users.noreply.github.com> Date: Tue, 9 Jul 2024 16:03:55 +0800 Subject: [PATCH] =?UTF-8?q?fix(form-radio):=20=E6=94=B9=E5=8F=98=20checked?= =?UTF-8?q?=20=E5=B1=9E=E6=80=A7=E5=80=BC=E6=97=B6=EF=BC=8CUI=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E5=BC=82=E5=B8=B8=20(#2084)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/form.js | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/modules/form.js b/src/modules/form.js index 0ea0dcaf..a65882eb 100644 --- a/src/modules/form.js +++ b/src/modules/form.js @@ -966,16 +966,10 @@ layui.define(['lay', 'layer', 'util'], function(exports){ var ANIM = 'layui-anim-scaleSpring'; reElem.on('click', function(){ - var name = radio[0].name, forms = radio.parents(ELEM); var filter = radio.attr('lay-filter'); // 获取过滤器 - var sameRadio = forms.find('input[name='+ name.replace(/(\.|#|\[|\])/g, '\\$1') +']'); // 找到相同name的兄弟 if(radio[0].disabled) return; - layui.each(sameRadio, function(){ - this.checked = false; - }); - radio[0].checked = true; layui.event.call(radio[0], MOD_NAME, 'radio('+ filter +')', { @@ -986,9 +980,16 @@ layui.define(['lay', 'layer', 'util'], function(exports){ }); that.syncAppearanceOnPropChanged(this, 'checked', function(){ - if(this.checked){ + var radioEl = this; + if(radioEl.checked){ reElem.addClass(CLASS + 'ed'); reElem.children('.layui-icon').addClass(ANIM + ' ' + ICON[0]); + var forms = radio.parents(ELEM); + var sameRadios = forms.find('input[name='+ radioEl.name.replace(/(\.|#|\[|\])/g, '\\$1') +']'); // 找到相同name的兄弟 + layui.each(sameRadios, function(){ + if(radioEl === this)return; + this.checked = false; + }); }else{ reElem.removeClass(CLASS + 'ed'); reElem.children('.layui-icon').removeClass(ANIM + ' ' + ICON[0]).addClass(ICON[1]); @@ -1092,11 +1093,8 @@ layui.define(['lay', 'layer', 'util'], function(exports){ return originProps.get.call(this); }, set: function (newValue) { - var oldValue = this[propName]; originProps.set.call(this, newValue); - if(oldValue !== newValue){ - handler.call(this); - } + handler.call(this); } }) );