我有一个组合框,其中包含标签文本和值的数字。我想计算组合框的值来保存文本(标签),创建我自己的库。我正在学习xpages请帮帮我。提前致谢。
<xp:comboBox id="comboBox2"
value="#{document1.status}" style="width:76.0px">
<xp:this.validators>
<xp:validateExpression
message="Please select status.">
<xp:this.expression><![CDATA[#{javascript:!getComponent("comboBox2").getSubmittedValue().equalsIgnoreCase("-select-")}]]></xp:this.expression>
</xp:validateExpression>
</xp:this.validators>
<xp:selectItem
itemLabel="-Select-">
</xp:selectItem>
<xp:selectItem itemLabel="Requested" itemValue="10">
</xp:selectItem>
<xp:selectItem
itemLabel="Next Release" itemValue="20">
</xp:selectItem>
<xp:selectItem
itemLabel="Scheduled" itemValue="30">
</xp:selectItem>
<xp:selectItem
itemLabel="Awaiting Additional Info" itemValue="40">
</xp:selectItem>
<xp:selectItem
itemLabel="In Development" itemValue="50">
</xp:selectItem>
</xp:comboBox>
答案 0 :(得分:0)
Sven Hasselbach写了一个函数来获取所选的标签值。我用你发布的代码对它进行了测试,结果正常:
<xp:comboBox id="comboBox2" style="width:76.0px">
<xp:this.validators>
<xp:validateExpression message="Please select status.">
<xp:this.expression><![CDATA[#{javascript:!getComponent("comboBox2").getSubmittedValue().equalsIgnoreCase("-select-")}]]></xp:this.expression>
</xp:validateExpression>
</xp:this.validators>
<xp:selectItem itemLabel="-Select-">
</xp:selectItem>
<xp:selectItem itemLabel="Requested" itemValue="10">
</xp:selectItem>
<xp:selectItem itemLabel="Next Release" itemValue="20">
</xp:selectItem>
<xp:selectItem itemLabel="Scheduled" itemValue="30">
</xp:selectItem>
<xp:selectItem itemLabel="Awaiting Additional Info" itemValue="40">
</xp:selectItem>
<xp:selectItem itemLabel="In Development" itemValue="50">
</xp:selectItem>
<xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="comboBox2">
<xp:this.action><![CDATA[#{javascript:function getSelectedLabel( id ) {
var ComboBox = getComponent( id );
var value = ComboBox.value;
var ChildrenList:java.util.ListIterator;
ChildrenList = ComboBox.getChildren().listIterator();
while (ChildrenList.hasNext()) {
var Child = ChildrenList.next();
/*** process computed / multiple values ***/
if( typeof( Child ) == 'com.ibm.xsp.component.UISelectItemsEx' ){
var hlp = Child.getValue();
for( var i=0; i< hlp.length; i++ ){
if( hlp[i].getValue() == value )
return hlp[i].getLabel() ;
}
}
/*** process single values ***/
if( typeof( Child ) == 'com.ibm.xsp.component.UISelectItemEx' ){
if( Child.getItemValue() == value )
return Child.getItemLabel();
}
}
}
var value = getSelectedLabel("comboBox2")
view.postScript("console.log('" + value + "')")}]]></xp:this.action>
</xp:eventHandler></xp:comboBox>
您可以在浏览器控制台中看到,如果单击标签,则会记录正确的标签值。
现在您可以访问&#34;值&#34;中的标签。变量