(“id”)。val()不使用tr:subform标签

时间:2014-03-16 07:12:56

标签: javascript jquery trinidad

我正在使用apache trinidad。我使用了tr:subform标签,里面有一些像datefields这样的元素,commandbutton每个都有一个Id。现在我有一个jquery函数使用('#id')。val()来获取字段。但是它不起作用。我可以看到字段的id在模式中#34 ; subformid:fieldid" 。但是在jquery函数中,它无法通过val()获取值.Here是片段

<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变为&#34; subform1:to_Date&#34;自动。但是当我使用document.getElementById(&#39; subform1:to_Date&#39;)时,它返回null。这是我的jquery函数

    $(document).ready( function() {

        $("#subform1:filterId").click(function(){
            alert('filterid clicked');
            var datePrsn = "";
            datePrsn = $("#subform1:to_Date").val();
            }
});

2 个答案:

答案 0 :(得分:1)

<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');

答案 1 :(得分:0)

尝试安装Firebug(适用于Firefox),或使用F12 for Chrome或IE并单击所需的元素,使用这些工具可以看到为元素生成的确切名称。

如果你有另一个元素,如tr:form或tr:table,名称将显示为formId:subFormId:elementId或tableId:0:elementId