javascript - ("id").val() 不适用于 tr :subform tag

标签 javascript jquery trinidad

我正在使用 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/

相关文章:

javascript - 为什么附加元素而不是可拖动的?

javascript - 如何删除 getTimezoneOffset

javascript - 火狐插件-sdk : get element of attached panel

jquery - 在 jQuery 单击事件中将伪元素移动到另一个

java - JSF 与特立尼达 tr :selectOneChoice

php - 在 PHP 中选择框数组

javascript - 条件媒体查询 window.matchMedia

javascript - Slickgrid:拖动列时可以在网格上水平滚动吗?

jsf - 升级问题 - JSF、Myfaces、Trinidad 和 Facelets 之间有什么联系?