getOptions()for循环不起作用

时间:2014-08-20 09:43:23

标签: javascript dynamics-crm-2013

以下代码抛出错误。我尝试获取(警告)MS CRM 2013中的Optionset的值和选项,它成功地显示了所有内容,但之后显示错误。我附加了屏幕截图错误

function GetOptionsetLable() 
{
    var OptionSetControl = Xrm.Page.getAttribute("test_613a");
    for(var intCounter=0;  OptionSetControl .getOptions().length; intCounter++)
    {
        var backendvalue=OptionSetControl .getOptions()[intCounter].value;
        alert(backendvalue.toString());
    }
}

2 个答案:

答案 0 :(得分:1)

function GetOptionsetLable() 
{
    var OptionSetControl = Xrm.Page.getAttribute("test_613a");
    for(var intCounter=0;  OptionSetControl .getOptions().length; intCounter++)
    {
        var backendvalue=OptionSetControl .getOptions()[intCounter].value;
        alert(backendvalue.toString());
    }
}

你的for循环永远不会结束,因为你没有告诉它何时停止。

OptionSetControl.getOptions().length

应该是:

intCounter < OptionSetControl.getOptions().length

完整代码:

function GetOptionsetLable() 
{
    var OptionSetControl = Xrm.Page.getAttribute("test_613a");
    for(var intCounter=0; intCounter < OptionSetControl.getOptions().length; intCounter++)
    {
        var backendvalue=OptionSetControl.getOptions()[intCounter].value;
        alert(backendvalue.toString());
    }
}

答案 1 :(得分:0)

请记住,value属性包含optionset数值,.text属性包含标签。

你也可以使用较短的条件:

var options = Xrm.Page.getAttribute("test_613a").getOptions();
for (var i in options) {
    alert(options[i].value);
}

我还创建了一个库,你可以在这里找到:

OptionSet JavaScript Helper Library