如何修改JQuery代码实现Power Apps门户表单可见字段必填
解决方案:动态设置Power Apps门户表单字段的必填状态
以下是修改后的完整代码,实现「BIL Category」字段显示时设为必填、隐藏时取消必填的功能:
$(document).ready(function () { $("#cr92d_typeoffundingrequest").change(onDisplaySectionChange); onDisplaySectionChange(); }); function onDisplaySectionChange() { var varFunding = $('#cr92d_typeoffundingrequest').find("option:selected").text(); var bilCategoryField = $('#cr92d_bilcategory'); var bilCategoryContainer = bilCategoryField.parent().parent(); if (varFunding === "DWSRF") { bilCategoryContainer.hide(); // 取消字段必填属性 bilCategoryField.removeAttr('required'); // 移除必填星号标记 bilCategoryContainer.find('.required-mark').remove(); // 清除残留的验证错误提示 bilCategoryContainer.siblings('.field-validation-error').remove(); } else{ bilCategoryContainer.show(); // 设置字段为必填 bilCategoryField.attr('required', 'required'); // 为标签添加必填星号(避免重复添加) if (!bilCategoryContainer.find('.required-mark').length) { bilCategoryContainer.find('label').append('<span class="required-mark" style="color:red;"> *</span>'); } } }
关键修改说明
- DOM元素缓存:将频繁操作的字段和容器元素提前缓存,减少重复DOM查询,提升代码效率。
- 隐藏字段时的清理:
- 移除
required属性,避免表单提交时校验已隐藏的字段 - 移除必填星号,保证界面显示一致
- 清除可能残留的前端验证错误提示,避免干扰用户
- 移除
- 显示字段时的必填设置:
- 添加
required属性,触发浏览器原生表单验证 - 给字段标签添加红色必填星号,明确告知用户字段必填要求
- 通过判断星号是否存在,避免重复添加导致界面混乱
- 添加
额外注意事项
确保Power Apps门户对应的Dynamics 365实体中,「BIL Category」字段的后端必填设置为非必填。如果后端强制设为必填,即使前端隐藏字段,表单提交时仍会触发后端验证报错,导致功能异常。
内容的提问来源于stack exchange,提问作者Nerd Gorilla
相关产品推荐
相关产品推荐

