我正在使用 apache trinidad。我使用了 tr:subform 标签,其中有一些元素,例如日期字段、命令按钮,每个元素都有一个 Id。现在我有一个 jquery 函数,它使用 ('#id').val() 来获取字段。但它不起作用。我可以看到字段的 id 格式为“subformid:fieldid”。但是在jquery 函数无法通过 val() 获取值。这是代码片段
<tr:subform id="subform1">
<tr:outputLabel for="to_Date" value="To Date"/>
<tr:inputDate id="to_Date" value="#{customer.toDate }" >
<f:convertDateTime pattern="dd-MM-yyyy" />
</tr:inputDate>
<tr:commandButton text="Filter" action="#{bean.action }" id="filterId" partialSubmit="true"></tr:commandButton>
</tr:subform>
这里日期字段的 id 自动变为“subform1:to_Date”。但是当我使用 document.getElementById('subform1:to_Date') 时它返回 null 。这是我的 jquery 函数
$(document).ready( function() {
$("#subform1:filterId").click(function(){
alert('filterid clicked');
var datePrsn = "";
datePrsn = $("#subform1:to_Date").val();
}
});
最佳答案
<tr:subform>
在服务器端中运行,其 HTML 格式为 <tr id="...">
。所以你只需要查看服务器代码渲染的 id 是什么,然后仅通过 id 获取元素,例如 @Pilot建议,例如:
document.getElementById('to_Date')
仅供引用:http://myfaces.apache.org/trinidad/trinidad-api/tagdoc/tr_subform.html
编辑
使用两个反斜杠 ( \\:
) 转义 jQuery 选择器中的冒号:
$('#subform1\\:filterId');
关于javascript - ("id").val() 不适用于 tr :subform tag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22434066/