如何覆盖Liferay 7.0中的Liferay.Util.focusFormField函数?(或挂钩)?
该方法在frontend-js-aui-web(portal-src \ modules \ apps \ foundation \ frontend-js \ frontend-js-aui-web \ src \ main \ resources \ META-INF \ resources \ liferay \ util.js)。
我唯一想到的方法就是将其覆盖在js文件中的某个地方,就像这样:
Liferay.Util.focusFormField = function(el) {
var doc = $(document);
var interacting = false;
el = Util.getDOM(el);
el = $(el);
doc.on(
'click.focusFormField',
function (event) {
interacting = true;
doc.off('click.focusFormField');
}
);
if (!interacting && Util.inBrowserView(el)) {
var form = el.closest('form');
var focusable = !el.is(':disabled') && !el.is(':hidden') && !el.parents(':disabled').length;
if (!form.length || focusable) {
el.focus(false); // modified
}
else {
var portletName = form.data('fm-namespace');
Liferay.once(
portletName + 'formReady',
function () {
el.focus(false); // modified
}
);
}
}
}
我真正想要做的就是禁用在提交表单时发生的滚动。
有人知道如何最好地做到这一点吗?
我在网上发现的另一件事是:https://alloyui.com/api/files/alloy-ui_src_aui-form-validator_js_aui-form-validator.js.html#l216
但是我在liferay-7.0-source-files中找不到它,也没有解释如何覆盖它。