Die Zeichenfolge _hospital_WAR_hospitalportlet_
, die der Id
der <input>
vorangestellt ist, ist nichts anderes als der Portlet-Namespace.
Dies ist nur zu Ihrem <input>
‚s name
& id
Attribut vorangestellt, wenn Sie <aui:input>
-Tag und die name
& id
Attribute nicht geändert werden, wenn Sie nur Plain-Vanilla html <input>
Tag verwenden.
Aber wie ist es eine gute Praxis <aui:input>
verwenden Sie das Portlet-Namespace in Ihrem JavaScript-Code folgendes erhalten tun können:
Wenn Sie Javascripts in einer JSP dh unter Verwendung innerhalb <script> .. </script>
verwenden oder <aui:script> .. </aui:script>
dann können Sie <portlet:namespace />
oder <%= renderResponse.getNamespace() %>
verwenden, um die Zeichenfolge _hospital_WAR_hospitalportlet_
in Ihrem Javascript, etwas wie zu bekommen.
jQuery("#<portlet:namespace />username").val();
// Or
jQuery("#<%= renderResponse.getNamespace() %>username").val();
Aber wenn Sie eine *.js
Datei verwenden, dann empfehle ich Ihnen den Namespace als Argument an die JavaScript-Funktion in der js
Datei übergeben:
function changeValues(portletNamespace) { // this function is in a js file
jQuery("#" + portletNamespace + "username").val("Lets change");
}
diese Funktion von der JSP Aufruf:
<input type="button" onClick="changeValues('<portlet:namespace />')" />
Hoffnung, das hilft. Ich weiß nicht, ob es einen Weg gibt, die namespace
oder portletId
direkt durch eine von Liferay definierte JavaScript-Funktion zu bekommen. Wenn du so etwas bekommst, kannst du es hier posten und das wäre sehr hilfreich.