LotusXPagesTypeahead选项更改标签的DOM id

LotusXPagesTypeahead选项更改标签的DOM id,lotus,type-ahead,xpage,javascript,dojo,xpages,Lotus,Type Ahead,Xpage,Javascript,Dojo,Xpages,如果为输入文本字段启用了该字段,则更改该字段标签的生成id 一,。服务器上的源没有: 二,。以及浏览器中页面的来源: Ügyfélreferens 三,。相同输入启用时的代码: 四,。以及浏览器中带有字段的页面的源: Ügyfélreferens 五,。为标签生成的id为: 视图:\u id1:\u id2:\u id31:\u id45:ClientSupporter\u标签 ,而不是 视图:_id1:_id2:_id31:_id45:ClientSupporter 。问

如果为输入文本字段启用了该字段,则更改该字段标签的生成id

一,。服务器上的源没有:




二,。以及浏览器中页面的来源:


Ügyfélreferens

三,。相同输入启用时的代码:



四,。以及浏览器中带有字段的页面的源:


Ügyfélreferens

五,。为标签生成的id为:

视图:\u id1:\u id2:\u id31:\u id45:ClientSupporter\u标签

,而不是

视图:_id1:_id2:_id31:_id45:ClientSupporter

。问题是,我使用

setTextLabelForRequired(#{id:labelclientrporteur})
要更改标签的样式,此代码在这种情况下不起作用,因为标签的id已更改


我想知道如何修复此id更改,或者什么是最好的解决方法?

在我看来,这是一个可行的解决方法。最好是拥有唯一的JSIDOFC

这将

  • 使用选择器循环所有节点
  • 循环所有文本框
  • 通过domNode查找注册的小部件(不确定逻辑如何,但通过Id肯定更好)
  • 因此:

    或者更松散地匹配:

    var nodes = dojo.query('.xspInputFieldEditBox[id*="labelClientRaporteur"]');
    var domNode = nodes[0];
    

    所以使用setTextLabelForRequired(#{id:labelclientrporteur});在类型为“前置”的标签上,无法返回正确的生成id?是的,因为如果字段为“前置”类型,则id“view:\u id1:\u id2:\u id31:\u id45:ClientSupporter”不存在。我知道生成的id会更改。但是#{id:labelClientRapporteur}应该注意这一点,并返回正确的id。它是否返回了错误的id?我猜您需要通过lotus引擎呈现javascript,就像使用xpage内容一样。至少这是我从上面的评论中得到的。我做了一个小测试(使用8.5.3FP2),在我的测试中,如果inputText控件启用了提前键入功能,标签不会被附加到其id上。您使用的是什么版本的Notes和Domino?建议的解决方法似乎有效。我将xspInputFieldEditBox替换为xspTextLabel,因为我们要查找标签的id,而不是输入。谢谢您的帮助。
    var nodes = dojo.query('.xspInputFieldEditBox[id*="labelClientRaporteur"]');
    var domNode = nodes[0];