我正在尝试这样的事情:
<?xml version="1.0"/>
<ui:composition ....>
<h:inputText id="#{id}InputText" value="#{value}"/>
<rich:calendar id="#{id}Shevron"
popup="true"
datePattern="ddMMyy"
showInput="false"
todayControlMode="hidden"
enableManualInput="false"
showApplyButton="false"
updateDays="14"
ondateselected="alert('#{rich:clientId('#{id}Shevron')}');"
inputClass="xwingml-input"/>
</ui:composition>
我面临的问题是为我的facelts生成了实际的客户端ID 组件。有没有办法将id传递给rich:clientId是这样的?如果不是如何处理这种问题?
提前致谢!
答案 0 :(得分:3)
一个老问题,但在这里我写下我的解决方案,以防它帮助某人。
您可以将参数传递给JSTL函数,而无需评估运算符(#{} $ {})。看一下这个String length example。
因此,如果您的“id”未动态生成,则可以解决您的问题:
#{rich:clientId(id)}
但在您的情况下,您需要定义一个额外的变量来存储您的动态ID:
<c:set var="myDynamicID" value="${id}Shevron"/>
然后使用它来获取客户端UI。
#{rich:clientId(myDynamicID)}
答案 1 :(得分:0)
所有rich:clientId
用于呈现document.getElementById()
并提供完整ID。
所以不要使用#{rich:clientId('#{id}Shevron')}
并且只使用document.getElementById('#{id}Shevron');
并确保指定完整的ID(即包括表单ID等)