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

D365电话号码字段如何移除内置电话图标

移除Dynamics 365/Dataverse表单电话字段旁内置电话图标的方法

图标效果参考:
字段旁电话图标示意

这个拨号图标是系统为「电话」数据类型字段自动渲染的原生交互控件,没有开放在formContext.getControl()返回的控件配置项里,排查控件属性找不到配置入口是正常情况。

方案1:无代码方案(稳定性最高,优先选)

  • 自定义电话字段直接把字段数据类型从「电话」改成「单行文本」,需要做格式校验的话单独给字段加正则校验规则即可,普通单行文本字段不会自动渲染这个拨号图标。
  • 如果是系统自带的不可修改数据类型的电话字段(比如联系人、用户表的默认业务电话字段),在表单上移除原电话字段,新增一个自定义单行文本字段存储电话号码,配置字段同步规则让自定义字段和原系统电话字段值双向同步,表单上仅放置自定义单行文本字段就不会出现该图标。

方案2:前端注入样式隐藏(适合无法调整字段配置的场景)

图标是表单前端渲染的固定类名按钮元素,可以在表单加载时注入CSS直接隐藏,不需要依赖控件API:

  • 给表单OnLoad事件绑定JS函数,勾选「将执行上下文作为第一个参数传递」
  • 函数代码如下:
function hideFormPhoneIcon(executionContext) {
    const formContext = executionContext.getFormContext();
    const targetPhoneControl = formContext.getControl("myprefix_businessphone");
    if (!targetPhoneControl) return;
    const controlWrap = targetPhoneControl.getContainer();
    // 避免重复注入样式
    if (controlWrap.querySelector("style[data-hide-tel='true']")) return;
    const hideStyle = document.createElement("style");
    hideStyle.setAttribute("data-hide-tel", "true");
    // 匹配字段容器内的电话拨号按钮
    hideStyle.textContent = `
        button[aria-label^="拨打"],
        [data-icon-name="Phone"] {
            display: none !important;
        }
    `;
    controlWrap.appendChild(hideStyle);
}

注意:该方案依赖微软当前版本表单的前端元素选择器,如果后续产品更新调整了前端DOM结构、类名或ARIA标签,需要同步调整选择器规则,存在一定维护成本。

内容的提问来源于stack exchange,提问作者axbeit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:27:39