0

我正在測試MS CRM中功能性較大的一段代碼的獨立部分,我想知道爲什麼我不斷收到上述錯誤這小段代碼:我一直''未定義或空引用''無法獲得屬性'長度'

function testThis() 
{ 
    var optionset = document.getElementById("new_makeyear"); 
    console.log("this is supposed to be something " + optionset.Options.length); 
} 

「new_makeyear」是一個選項集。日誌聲明只是讓我可以通過控制檯看到行爲。有什麼問題?

謝謝

+1

' optionset'是一個DOM元素;你確定*它有一個'Options'屬性? –

+2

不支持在Dynamics CRM Web表單上訪問DOM。當您需要訪問特定的字段時,請查看'Xrm.Page.getAttribute()'和'Xrm.Page.getControl()'函數。屬於這些字段的DOM元素的名稱後綴爲下劃線+字符。 –

+0

您使用DOM方法而不是使用Xrm對象模型方法的任何特定原因? – Renjith

回答

2

正如Henk在他的評論中提到的,你不應該訪問DOM。您應該使用API​​來檢查的選項設置的選項,如下所示:

function testThis() { 
    var makeYear = Xrm.Page.getAttribute("new_makeyear"); 
    if (!makeYear) { return; } 
    console.log(makeYear.getOptions().length + " options currently available"); 
} 
+0

此解決方案給了我以下錯誤:「對象不支持屬性或方法'getOptions'」 –

+0

@CarlosFarmer哎呀,Xrm.Page.getControl應該是Xrm.Page.getAttribute。我更新了我的答案。 – Polshgiant

0

如果管理(通過onchange事件爲例)來訪問生成的DOM然後選項組可作爲 if(this.options[this.selectedIndex].parentNode.tagName =='optgroup') var og = this.options[this.selectedIndex].parentNode.label;

相關問題