Javascript 我不断得到';无法获取属性';长度';未定义或空引用的';
我正在测试一段更大的代码的独立部分,以实现MS CRM中的功能,我想知道为什么我总是在这段小代码中出现上述错误:Javascript 我不断得到';无法获取属性';长度';未定义或空引用的';,javascript,dynamics-crm,crm,undefined-reference,dynamics-crm-2015,Javascript,Dynamics Crm,Crm,Undefined Reference,Dynamics Crm 2015,我正在测试一段更大的代码的独立部分,以实现MS CRM中的功能,我想知道为什么我总是在这段小代码中出现上述错误: function testThis() { var optionset = document.getElementById("new_makeyear"); console.log("this is supposed to be something " + optionset.Options.length); } “新年”是一个选项集。log语句只是为了让我可以通过
function testThis()
{
var optionset = document.getElementById("new_makeyear");
console.log("this is supposed to be something " + optionset.Options.length);
}
“新年”是一个选项集。log语句只是为了让我可以通过控制台看到行为。有什么问题吗
谢谢正如亨克在评论中提到的,您不应该访问DOM。您应该使用API检查选项集的选项,如下所示:
函数testThis(){
var makeYear=Xrm.Page.getAttribute(“new_makeYear”);
如果(!makeYear){return;}
log(makeYear.getOptions().length+“当前可用的选项”);
}
正如亨克在评论中提到的,您不应该访问DOM。您应该使用API检查选项集的选项,如下所示:
函数testThis(){
var makeYear=Xrm.Page.getAttribute(“new_makeYear”);
如果(!makeYear){return;}
log(makeYear.getOptions().length+“当前可用的选项”);
}
如果您设法访问生成的DOM(例如通过onchange事件),则optiongroup可作为
if(this.options[this.selectedIndex].parentNode.tagName=='optgroup')
var og=this.options[this.selectedIndex].parentNode.label代码>如果您设法访问生成的DOM(例如通过onchange事件),则optiongroup可作为
if(this.options[this.selectedIndex].parentNode.tagName=='optgroup')
var og=this.options[this.selectedIndex].parentNode.label
optionset
是一个DOM元素;您确定它具有Options
属性吗?不支持在Dynamics CRM web窗体上访问DOM。当需要访问特定字段时,请查看Xrm.Page.getAttribute()
和Xrm.Page.getControl()函数。属于这些字段的DOM元素的名称后缀为下划线+字符。您使用DOM方法而不是使用Xrm对象模型方法的任何特定原因?optionset
是DOM元素;您确定它具有Options
属性吗?不支持在Dynamics CRM web窗体上访问DOM。当需要访问特定字段时,请查看Xrm.Page.getAttribute()
和Xrm.Page.getControl()函数。属于这些字段的DOM元素的名称后缀为下划线+字符。您使用DOM方法而不是使用Xrm对象模型方法有什么特殊原因吗?此解决方案给了我以下错误:“对象不支持属性或方法‘getOptions’”@CarlosFarmer Whoops,Xrm.Page.getControl应该是Xrm.Page.getAttribute。我更新了答案。此解决方案给了我以下错误:“对象不支持属性或方法‘getOptions’”@CarlosFarmer Whoops,Xrm.Page.getControl应该是Xrm.Page.getAttribute。我更新了我的答案。