Liferay / AlloyUI:覆盖util.js或在表单焦点上禁用滚动

时间:2018-07-16 12:10:15

标签: javascript forms liferay-7 alloy-ui

如何覆盖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中找不到它,也没有解释如何覆盖它。

0 个答案:

没有答案