jsf - 渲染 PrimeFaces <p :focus> component only if the browser window has a certain size

标签 jsf primefaces

有没有办法渲染 PrimeFaces <p:focus>仅当浏览器窗口具有一定大小时组件(或让它完成其工作)?为此,我了解也许我必须访问服务器代码中的浏览器窗口大小并使用组件 rendered属性来访问此代码。

在客户端代码中,我使用如下代码获取窗口宽度:$(window).width() > 480 .

这样做的原因是我不想将注意力集中在移动设备中的第一个组件,因为移动设备大多数时候都有小屏幕。

今天我使用下面的客户端代码执行此操作,但我想使用 <p:focus>任务的组件,因为它还具有在验证失败时集中第一个无效组件的优点。

$(
    function()
    {
        if (bigWindow())
        {
            focusFirstInput();
        }
    }
)

function bigWindow()
{
    return $(window).width() > 480;
}

function focusFirstInput()
{
    $("#form input:text, #form input[type=number], #form input[type=password], #form textarea").
        first().focus();
}

最佳答案

我找到了一种使用 <p:focus> 的方法组件:

$(
    function()
    {
        let primeFacesOriginalFocusFunction = PrimeFaces.focus;
        PrimeFaces.focus =
            function(id, context)
            {
                if (!isMobile())
                {
                    primeFacesOriginalFocusFunction(id, context);
                }
            }
    }
)

function isMobile()
{
    return ...
}

关于jsf - 渲染 PrimeFaces <p :focus> component only if the browser window has a certain size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74971820/

相关文章:

jsf - 避免在 h :inputText 中显示默认的长值 0

html - 如何设置h :selectOneRadio的<td>宽度

jsf - 如何在验证阶段隐藏 JSF 组件

java - Primefaces p :fileDownload with datatable

javascript - 获取网页中所有输入字段的更改的最佳方法

jsf - primefaces 命令按钮 oncomplete 未触发

java - 日志分析应用程序的最佳策略是什么

Java EE 6 : JSF vs Servlet + JSP. 我应该费心学习 JSF 吗?

unit-testing - 如何测试使用 session 参数的 JSF bean 方法?

java - PrimeFaces DataTable - 过滤(运行示例的问题)