From a3154b66235272f9b39af3982af01295c2abe133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A4=E5=BF=83?= <3277200+sentsim@users.noreply.github.com> Date: Fri, 13 Jan 2023 03:45:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20`form.render()`=20?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/form.js | 53 +++++++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/src/modules/form.js b/src/modules/form.js index bf288d99..090fbcbb 100644 --- a/src/modules/form.js +++ b/src/modules/form.js @@ -745,31 +745,42 @@ layui.define(['layer', 'util'], function(exports){ }); } }; - if (layui.type(type) === 'object') { - // jquery 对象 - type.each(function (index, item) { - var elem = $(item); - if (!elem.closest(ELEM).length) { - // 如果不是存在layui-form中的直接跳过 - return; - } - if (item.tagName === 'SELECT') { - items['select'](elem); - } else if (item.tagName === 'INPUT') { - var itemType = item.type; - if (itemType === 'checkbox' || itemType === 'radio') { - items[itemType](elem); - } else { - items['input'](elem); - } - } + + // 执行所有渲染项 + var renderItem = function(){ + layui.each(items, function(index, item){ + item(); }); + }; + + // jquery 对象 + if (layui.type(type) === 'object') { + // 若对象为表单域容器 + if($(type).is(ELEM)){ + elemForm = $(type); + renderItem(); + } else { // 对象为表单项 + type.each(function (index, item) { + var elem = $(item); + if (!elem.closest(ELEM).length) { + return; // 若不在 layui-form 容器中直接跳过 + } + if (item.tagName === 'SELECT') { + items['select'](elem); + } else if (item.tagName === 'INPUT') { + var itemType = item.type; + if (itemType === 'checkbox' || itemType === 'radio') { + items[itemType](elem); + } else { + items['input'](elem); + } + } + }); + } } else { type ? ( items[type] ? items[type]() : hint.error('不支持的 "'+ type + '" 表单渲染') - ) : layui.each(items, function(index, item){ - item(); - }); + ) : renderItem(); } return that; };