LotusXPagesTypeahead选项更改标签的DOM id
如果为输入文本字段启用了该字段,则更改该字段标签的生成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 。问
二,。以及浏览器中页面的来源:
Ü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];