Tôi đang cố gắng mở rộng một số chức năng của một portlet Liferay hiện có. Là một phần của điều này, tôi muốn sử dụng giao diện người dùng hợp kim để sửa đổi giá trị của một trường trong portlet. Có một khối <aui:script>
đã tồn tại từ trước nơi tôi muốn xác định chức năng tùy chỉnh của mình. Tôi đã đi trước và thử sử dụng A.one('element')
, nhưng tôi nhận được lỗi "A không được xác định". A.one()
được sử dụng ở nơi khác trong cùng một tệp .jsp, mặc dù không nằm trong khối <aui:script>
và hoạt động như mong đợi."A không được xác định" bên trong của <aui:script> khối
Tôi đã cố gắng giải quyết vấn đề này cho Google. Một giải pháp mà tôi đã thử là đưa câu lệnh "use" vào khối phần tử, nhưng điều này làm cho tất cả các hàm trong khối đó không được xác định khi được gọi từ jsp.
Những gì tôi có nghĩa là do "sử dụng" tuyên bố là thế này:
<aui:script use="aui-node,aui-base">
// ... script
</aui:script>
Dưới đây là một phác thảo sơ bộ những gì tôi đang cố gắng để làm:
<aui:script>
function save(){
// This is where I'm getting the 'A is not defined' error.
var titleNode = A.one('input[name=title]');
if (titleNode) {
// do stuff with titleNode
var titleVal = titleNode.val();
var titleSubstr = titleVal.substring(0, titleSubstr.lastIndexOf('/'));
titleNode.val(titleSubstr);
}
// other save-related code here
}
function otherFunction() {
// some other functionality
}
</aui:script>
Tôi không biết nhiều về "AUI" nhưng bạn vẫn có thể "document.getElementsByName (" title ") [0] .value" để nhận giá trị phần tử –