避免/禁用autojump到inputfield

时间:2016-01-22 11:37:40

标签: javascript html primefaces

我有一个问题,关于html输入标签或primefaces p:input。 为什么光标始终自动跳转到输入字段。我的页面高度很高,因此您需要向下滚动。 inputfield位于页面的末尾,光标自动跳转(onload)到页面的末尾,进入inputfield。我怎么能避免这种自动跳跃?

<h:form id="form">
    <p:commandButton oncomplete="PF('dlgG').show();" value="Open"
        id="button" update="dialog" partialSubmit="true" />
    <p:dialog appendToBody="true" appendTo="@(body)" modal="true"
        id="dialog" resizable="false" closeOnEscape="true" widgetVar="dlgG"
        showEffect="drop" hideEffect="drop">

        <div
            style="width: 90%; height: 100px; background: black; margin-bottom: 1000px;color:red;" id="demo"></div>

        <p:inputTextarea autoResize="true" rows="3" cols="100"
            value="#{auftragBean.comment}" id="inputBox" />
    </p:dialog>
</h:form>

1 个答案:

答案 0 :(得分:1)

'why'是一个文档和showcase问题(又名RTFM; - )):

p:dialog有一个focus属性,可在page 183 of the 5.3 documentation上阅读

  

focus null String Defines which component to apply focus

并在page 184上说:

  

<强>焦点

     

默认情况下,对话框会将焦点应用于显示的第一个可见输入,这对用户友好性非常有用   但在某些情况下,这是不可取的。假设第一个输入是弹出日历并打开   该对话框显示一个弹出日历。要自定义默认焦点行为,请使用焦点属性。

最有可能通过在顶部添加虚拟输入而不引用值并在其onfocus属性中赋予“blur()”来实现预防。但您也可以使用this other stackoverflow post中的解决方案(onShow未接受的解决方案)