我正在使用一些带有大量输入的简单tabview。当我提交时,我想将视图滚动到第一个错误。我使用简单的Jquery并且everythinks工作正常,但问题是当tab中显示第一个错误时(例如2),并且隐藏了此选项卡(显示选项卡1)。在这种情况下,ui-message返回一些偏移的有线值,但即使它会返回好的值,它会滚动到隐藏的选项卡。一些解决方案?
代码:
$('html').animate({scrollTop: (($('.ui-message-error').first().offset().top) - 10)}, 500);
<p:tabView id="tabview">
<p:tab id="tab1" title="1">
<p:inputText id="value1" value="#{bean.value1}" required="true"
...
</p:tab>
<p:tab id="tab1" title="2">
<p:inputText id="value2" value="#{bean.value2}" required="true"
...
</p:tab>
</p:tabView>
其次如何将这个javascript绑定到所有按钮?也许jquery在某个类.submit-button左右点击事件?但我认为在按钮动作监听器完成之前会调用它,所以它不好。