如果我想将焦点设置到未能通过验证的字段上,我可以使用
我发现这个答案并尝试实现它,我想说它只部分地起作用。为什么?因为如果您通过声明一个变量来手动设置焦点,它会覆盖
我尝试使用
<p:focus context='@form'/>
来实现这个简单的情况。但我的问题是,并不是所有的验证都可以在前端进行。例如,当用户提交表单时,Bean将检查数据库中是否已存在该用户名,如果存在,则将错误消息设置为该字段并将焦点设置为它。在这种情况下,<p:focus />
标记不再起作用,因为它实际上已经通过了前端验证。我发现这个答案并尝试实现它,我想说它只部分地起作用。为什么?因为如果您通过声明一个变量来手动设置焦点,它会覆盖
<p:focus context='@form'/>
标签。当这个焦点标记失去其功能时,如果有任何前端验证失败,它将不再把焦点带到那个特定的字段。我尝试使用
widgetVar
来执行焦点。我为我的字段声明了一个widgetVar
名称,比如widgetVar='username'
,然后在托管bean中,我使用以下代码来聚焦它:RequestContext.getCurrentInstance().execute("PF('username').focus()");
很遗憾,它并不起作用。不确定execute()
是否使用这种方式不起作用,或者语句存在问题。抱歉我的英语不好,希望得到任何帮助或建议。