Beg*_*ner 6 liferay liferay-6 alloy-ui
我在liferay portlet中使用了AlloyUI.
我想<input>在javascript中使用我的id.问题是在客户端更改了元素的id.
例如:
如果我将<input>'Id' 设置为"username",则将其更改为_hospital_WAR_hospitalportlet_userNameie _hospital_WAR_hospitalportlet_附加到Id,其中Hospital是我的portlet名称.
如何获取客户端ID以便我可以在jquery中使用它?
字符串_hospital_WAR_hospitalportlet_前置到Id的<input>不过是portlet的命名空间.
如果您使用标记,则仅在您的<input>'s name&id属性前面添加,如果您只使用普通的html 标记,则不会更改&属性.<aui:input>nameid<input>
但是因为这是一个很好的做法,<aui:input>你可以执行以下操作来获取javascript代码中的portlet命名空间:
如果您正在使用使用中的JSP,即内部的JavaScript <script> .. </script>或<aui:script> .. </aui:script>那么你可以使用<portlet:namespace />或<%= renderResponse.getNamespace() %>得到的字符串_hospital_WAR_hospitalportlet_你的JavaScript,像里面.
jQuery("#<portlet:namespace />username").val();
// Or
jQuery("#<%= renderResponse.getNamespace() %>username").val();
Run Code Online (Sandbox Code Playgroud)但是如果您使用的是*.js文件,那么我建议您将命名空间作为参数传递给文件中的javascript函数js:
function changeValues(portletNamespace) { // this function is in a js file
jQuery("#" + portletNamespace + "username").val("Lets change");
}
Run Code Online (Sandbox Code Playgroud)
从JSP调用此函数:
<input type="button" onClick="changeValues('<portlet:namespace />')" />
Run Code Online (Sandbox Code Playgroud)希望这可以帮助.我不知道是否有办法获得namespace或portletId直接通过Liferay定义的一些javascript函数.如果你得到类似的东西,你可以在这里发布,这将是非常有帮助的.
| 归档时间: |
|
| 查看次数: |
7049 次 |
| 最近记录: |