静态引用JSF中的动态ID

时间:2013-06-05 23:34:44

标签: javascript jsf

我有一个输入文本框,我想用来自另一个对象发生的onclick事件的值进行更新。在这种情况下,我知道test.id0不正确,它需要是为paymentAmountOne动态生成的id。我试过使用绑定,但这不起作用。

<div id="minDueLinkDiv" class="normalLink" onclick="dijit.byId('test.id0').attr('value', '#{userInfo.minAmt}');">

<h:outputText id="minDueLink" styleClass="outputText" value="#{msg.minDue}"/></div>

<h:inputText required="true" tabindex="1" styleClass="inputText" id="paymentAmountOne" value="#{userInfo.paymentAmountOne}" style="width:115px" maxlength="15" >

  <j4j:idProxy id="paymentAmountOne_"/>

</h:inputText>

感谢任何帮助。

我添加了.paymentAmountOne

这是渲染的内容仍无效。

<div id="minDueLinkDiv" class="normalLink" onclick="dojo.query('.paymentAmountOne').attr('value', '429.56');">

<span id="paymentAmountOne_" title="j_id_jsp_1879829640_2:paymentAmountOne"></span>

<div id="widget_j_id_jsp_1879829640_2:paymentAmountOne" class="dijit dijitReset dijitInlineTable dijitLeft inputText paymentAmountOne dijitTextBox" wairole="presentation" dojoattachevent="onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse" role="presentation" style="width: 115px;" widgetid="j_id_jsp_1879829640_2:paymentAmountOne" value="429.56">

我错过了什么吗?我也和dijit一起尝试过。

2 个答案:

答案 0 :(得分:0)

您可以按班级查找输入。在你的情况下:

<div id="minDueLinkDiv" class="normalLink" onclick="dojo.query('.paymentAmountOne').attr('value', '#{userInfo.minAmt}');">

<h:outputText id="minDueLink" styleClass="outputText" value="#{msg.minDue}"/></div>

<h:inputText required="true" tabindex="1" styleClass="inputText paymentAmountOne" id="paymentAmountOne" value="#{userInfo.paymentAmountOne}" style="width:115px" maxlength="15" >

  <j4j:idProxy id="paymentAmountOne_"/>

</h:inputText>

我不确定在dojo中按类查找,你可能需要适应它。

答案 1 :(得分:0)

谢谢mrembisz。我是JSF的新手,我没有意识到我可以通过设置表单id来消除表单中的动态ID

     <h:form id="paymentForm">, 

然后按照您的建议使用paymentForm:paymentAmountOne。

进行引用

谢谢。