gpt4 book ai didi

javascript - Lotus Xpages TypeAhead 选项更改标签的 DOM id

转载 作者:行者123 更新时间:2023-11-30 18:21:12 27 4
gpt4 key购买 nike

如果 更改输入文本字段标签的生成 ID为该字段启用字段。

1. 上的来源没有 :

<xp:tr>
<th scope="row"><br/>
<xp:label id="labelClientRapporteur"
for="clientRapporteur">
<xp:this.value><![CDATA[${javascript:clientData['clientRapporteur']}]]></xp:this.value>
</xp:label>
</th>
<xp:td>
<xp:inputText id="clientRapporteur"
value="#{complaintDocument.clientRapporteur}"><br/>
</xp:inputText>
</xp:td>
</xp:tr>

2. 以及浏览器中页面的来源:

<tr>
<th scope="row">
<label id="view:_id1:_id2:_id31:_id45:labelClientRapporteur" class="xspTextLabel" for="view:_id1:_id2:_id31:_id45:clientRapporteur">Ügyfélreferens</label>
</th>
<td>
<input id="view:_id1:_id2:_id31:_id45:clientRapporteur" class="xspInputFieldEditBox" type="text" name="view:_id1:_id2:_id31:_id45:clientRapporteur">
</td>
</tr>

3。 的代码如果是 为相同的输入启用:

<xp:tr>
<th scope="row"><br/>
<xp:label id="labelClientRapporteur"
for="clientRapporteur">
<xp:this.value><![CDATA[${javascript:clientData['clientRapporteur']}]]></xp:this.value>
</xp:label>
</th>
<xp:td>
<xp:inputText id="clientRapporteur"
value="#{complaintDocument.clientRapporteur}">
<xp:typeAhead mode="partial" minChars="1"
ignoreCase="true"
valueList="#{javascript:return namesTypeAhead();}" var="lupkey"
valueMarkup="true">
</xp:typeAhead>
</xp:inputText>
</xp:td>
</xp:tr>

4.页面来源为浏览器中的字段:

<tr>
<th scope="row">
<label id="view:_id1:_id2:_id31:_id45:clientRapporteur_label" class="xspTextLabel" for="view:_id1:_id2:_id31:_id45:clientRapporteur">Ügyfélreferens</label>
</th>
<td>
<span id="view:_id1:_id2:_id31:_id45:_id78" mode="partial" jsid="view__id1__id2__id31__id45__id78" dojotype="ibm.xsp.widget.layout.data.TypeAheadReadStore"></span>
<div id="widget_view:_id1:_id2:_id31:_id45:clientRapporteur" class="dijit dijitReset dijitInlineTable dijitLeft xspInputFieldEditBox dijitTextBox dijitComboBox" role="combobox" widgetid="view:_id1:_id2:_id31:_id45:clientRapporteur" aria-labelledby="view:_id1:_id2:_id31:_id45:clientRapporteur_label">
</td>
</tr>

5.为标签生成的 id 是:

view:_id1:_id2:_id31:_id45:clientRapporteur_label

,而不是

view:_id1:_id2:_id31:_id45:clientRapporteur

.问题是,我使用

setTextLabelForRequired("#{id:labelClientRapporteur}");

更改标签的样式,并且此代码在这种情况下不起作用,因为标签的 id 已更改。

我想知道如何解决此 ID 更改问题,或者最好的解决方法是什么?

最佳答案

这是我认为可行的解决方法。最佳的是拥有唯一的 jsid ofc。

这将

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

所以:

var arr = dojo.filter(dojo.query('.xspInputFieldEditBox'), function(domNode) {

if(/labelClientRapporteur/.test(domNodes.className))
return true;

});
var widget = dijit.getEnclosingWidget(arr[0]);

或者更松散的匹配:

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

关于javascript - Lotus Xpages TypeAhead 选项更改标签的 DOM id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12002287/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com