("id").val()对tr:subform标签不起作用
("id").val() not working with tr:subform tag
我正在使用apache特立尼达。我使用了一个tr:子表单标签,里面我有一些元素,如日期字段,命令按钮每个都有一个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');
尝试安装Firebug(适用于Firefox),或者使用F12(适用于Chrome或IE)并单击您想要的元素,使用这些工具您可以看到为元素生成的确切名称。
如果您有另一个元素,如tr:form或tr:table,名称将显示为formId:subFormId:elementId或tableId:0:elementId
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- "工具提示"jQuery插件坏了
- "锻造;React中的表达式
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 如何提取“;href"最近列表项中的属性值
- CKEditor如何允许href="javascript:void(0)"在小部件中
- 插入“;img src"在javascript中