通过javascript的选项卡顺序

通过javascript的选项卡顺序,javascript,dynamics-crm-2011,Javascript,Dynamics Crm 2011,我想把表格上的标签顺序设置为从左到右。我在网上看到了以下代码 for (var i = 0; i < crmForm.all.length; i++) { var element = crmForm.all[i]; if (element.tabIndex && element.tabIndex != "0") { if (element.className == 'ms-crm-Hidden-NoBehavior')

我想把表格上的标签顺序设置为从左到右。我在网上看到了以下代码

for (var i = 0; i < crmForm.all.length; i++) 
{
    var element = crmForm.all[i];
    if (element.tabIndex && element.tabIndex != "0") {
        if (element.className == 'ms-crm-Hidden-NoBehavior') 
            continue;
        if (element.tagName == 'A') {
            if (element.className != 'ms-crm-InlineTabHeaderText') 
                continue;
        }

        element.tabIndex = 10000 + (i * 10);
    }
}  
for(变量i=0;i
这会根据我的需要设置选项卡顺序。但是,当涉及到货币字段时,会出现一个问题,因为当您第一次对其进行制表时,货币符号被选中,您无法键入任何内容,并且必须再次进行制表才能在字段中键入任何内容

代码有没有办法忽略这些符号,直接进入字段本身


谢谢

您的方法构成了一个不受支持的定制,但只需少量手动操作,您就可以以完全受支持的方式实现相同的结果。您所需要做的就是为每一行字段添加一个新的“节”(不显示标题或分隔符)

结果是没有不受支持的JScript和与应用程序其余部分完全一致的可预测行为

在我下面的例子中,我展示了一个我必须如何布局我的表单的例子,以便本地的标签行为“有意义”。然而,如果我希望使用水平制表符,我可以重新安排我的表单,引入一些新的部分,然后让它在没有代码的情况下按照我的意愿工作

这种方法的美妙之处在于,它只影响你想要它的部分


虽然技术上它仍然不受支持,但我似乎已经解决了这里的货币问题:

function TabOrderLefttoRight() {
    for (var i = 0; i < crmForm.all.length; i++) {
    var element = crmForm.all[i];
    if (element.tabIndex && element.tabIndex > "0") { //less than zero instead of !=
        if (element.className == 'ms-crm-Hidden-NoBehavior')
            continue;
        if (element.tagName == 'A') {
            if (element.className != 'ms-crm-InlineTabHeaderText')
                continue;
        }

        element.tabIndex = 10000 + (i);
    }
}
函数选项卡orderLeftToRight(){
对于(变量i=0;i“0”){//小于零而不是=
如果(element.className=='ms crm Hidden NoBehavior')
继续;
如果(element.tagName=='A'){
if(element.className!=“ms crm InlineAbheaderText”)
继续;
}
element.tabIndex=10000+(i);
}
}
}


这样,它不会影响tabindex(货币字段)中低于0的项目

啊,对了,那么我发布的代码是不受支持的?我的猜测是,没有一个真正受支持的代码方法来实现这一点,恐怕没有。检查的简单方法-在CRM SDK中搜索“选项卡顺序”。如果它没有出现,那么您可以非常确定没有支持的方法来执行此操作。谢谢你的帮助