You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:05:32