<input>
的Id
前面的字符串_hospital_WAR_hospitalportlet_
不過是portlet命名空間。
此,如果您使用<aui:input>
標籤只預置到您的<input>
的name
& id
屬性,如果你只是用普通的香草HTML <input>
標籤name
& id
屬性沒有改變。
但因爲它是使用<aui:input>
,你可以做以下,以獲得portlet的命名空間在你的JavaScript代碼的好做法:
如果您使用的使用中<script> .. </script>
或JSP,即內部的JavaScript <aui:script> .. </aui:script>
然後你可以使用<portlet:namespace />
或<%= renderResponse.getNamespace() %>
在你的javascript裏面得到字符串_hospital_WAR_hospitalportlet_
,就像。
jQuery("#<portlet:namespace />username").val();
// Or
jQuery("#<%= renderResponse.getNamespace() %>username").val();
但是,如果你使用的是*.js
文件,那麼我建議你要把這個名字空間作爲參數傳遞給JavaScript函數在js
文件:
function changeValues(portletNamespace) { // this function is in a js file
jQuery("#" + portletNamespace + "username").val("Lets change");
}
調用從JSP此功能:
<input type="button" onClick="changeValues('<portlet:namespace />')" />
希望這會有所幫助。我不知道是否有辦法直接通過Liferay定義的某個JavaScript函數獲取namespace
或portletId
。如果你有這樣的東西,你可以在這裏發佈,這將是非常有益的。