动态显示组件在进行判断时, 增加对已被附加禁用(disabled)组件的处理

原代码在进行校验时, 使用serializeArray方法在序列化表单元素时, 会默认将disabled的组件过滤掉, 此操作将会导致动态显示组件依赖的组件被设置为disabled时判断失效, 会隐藏掉使用了data-favisible的组件
本次修改在调用序列化之前, 先临时移除disabled属性, 取出完整的序列化参数后, 再将其恢复禁用, 从而使附加了disabled的组件也能使data-favisible组件正确获取到其当前值
使用情景: 添加表单时某个选项需要管理员手动选择, 在添加完成后, 编辑不能再次修改该选项, 但其下根据该元素需要显隐的组件应当正常展示

Signed-off-by: AriFe.Liu <88468560@qq.com>
pull/471/head
AriFe.Liu 2024-07-26 12:51:44 +00:00 committed by Gitee
parent b0d295bd67
commit 7c7780bc56
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
1 changed files with 2 additions and 0 deletions

View File

@ -559,7 +559,9 @@ define(['jquery', 'bootstrap', 'upload', 'validator', 'validator-lang'], functio
}
};
// @formatter:on
var $disabledElements = form.find(':disabled').removeAttr('disabled');
var dataArr = form.serializeArray(), dataObj = {}, fieldName, fieldValue;
$disabledElements.attr('disabled', 'disabled');
$(dataArr).each(function (i, field) {
fieldName = field.name;
fieldValue = field.value;