CRM Online中如何获取与Xrm.Page.getContext/getAttribute关联的输入元素?
在CRM Online中通过Xrm.Page获取关联DOM元素的方法
在CRM Online中,微软官方并不推荐直接操作DOM(版本更新可能导致DOM结构变化),但如果业务场景确实需要,可通过以下方式获取与属性或控件关联的输入元素:
1. 通过属性对象(getAttribute)获取
先获取属性对应的控件,再从控件中提取DOM元素:
// 获取目标属性对象 var targetAttr = Xrm.Page.getAttribute("你的属性逻辑名称"); // 获取属性绑定的第一个控件(多控件场景可遍历controls集合) var attrControl = targetAttr.controls.get(0); // 获取控件对应的外层DOM元素 var domElement = attrControl.getDomElement(); // 若需获取内部的<input>输入框(针对文本类控件) var inputElement = domElement.querySelector("input");
2. 通过控件对象(getControl)获取
若已知控件的逻辑名称,可直接获取控件后提取DOM:
// 获取目标控件对象 var targetControl = Xrm.Page.getControl("你的控件逻辑名称"); // 获取控件对应的外层DOM元素 var domElement = targetControl.getDomElement(); // 按需获取内部输入元素(示例为文本框) var inputElement = domElement.querySelector("input");
注意事项
- 不同类型控件的DOM结构存在差异,比如单选/多选按钮、下拉框等,需要根据控件类型调整选择器,例如单选按钮可使用
querySelectorAll("input[type='radio']")获取选项。 - 优先使用Xrm.Page提供的官方API操作数据和控件行为,避免依赖DOM结构导致的兼容性问题。
内容的提问来源于stack exchange,提问作者Дмитрий Cенько
相关产品推荐
相关产品推荐

