簡體   English   中英

輸入按鍵的行為類似於JSF中的Submit

[英]Enter Key Press behave like Submit in JSF

如何使Enter鍵的行為類似於JSF中的Submit。 它與Inp​​utBoxes一起使用; 但不適用於inputSecret框

如果您想按ENTER鍵而不是以任何形式提交,那么我們要做的就是在af:form標記中添加defaultcommand屬性,並將Submit按鈕的ID作為值。 的示例代碼片段是

<af:form id="f1" defaultCommand="cb1">
<af:outputText value="User Name" id="usename"/>
          <af:inputText value="#{BackingBean.userName}" id="uname" />
          <af:outputText value="Password" id="pword"/>
          <af:inputText value="#{BackingBean.password}" id="paword" secret="true"/>
          <af:commandButton text="Submit" action="#{BackingBean.method}" id="cb1" />
</af:form> 

我以前沒看過這個問題。 這種行為是特定於瀏覽器的機會很小。 嘗試使用不同類型的瀏覽器以排除一個和另一個(IE6 / 7/8,FF,Safari,Chrome等)。 發生這種情況的可能性更大,這是由(錯誤的)Java鍵盤事件監聽器錯誤地抑制了Enter鍵(例如,檢查輸入字符的JS密碼驗證器)引起的。

如果仍然徒勞,只需將以下onkeypress添加到h:form

<h:form onkeypress="if (event.keyCode == 13) this.submit();">

但是,您需要考慮文本區域。 如果有它們,那么您需要自己復制textareas 期望h:inputXXX元素上的所有onkeypress事件。

使用jsf 2測試。

<h:commandButton id="hidden" style="visibility: hidden;" action="#{mybean.myaction()}" />

以你的形式

我通過放置一個附加的inputBox並使用javascript將其隱藏來使其工作。 讓我知道您還有其他建議嗎?感謝baluC向我指出正確的方向傑里

我想到了一個古老的規范。 如果您的表單僅包含一個輸入字段,則在某些版本的Internet Explorer中,在enter -key上提交的行為不起作用。 最簡單的解決方法是確保您擁有多個輸入字段。

此問題的其他原因包括...

  • 沒有提交類型的輸入
  • 輸入的類型為Submit,但在頁面上不可見(隱藏或位於頁面外)

此行為非常特定於此瀏覽器。

MS錯誤報告在這里: connect.microsoft.com:提交按鈕值未隨表單提交一起發布

從ComputerPilot的答案中,我知道這是IE中的錯誤,如果只有一個輸入元素,IE不會使父表單提交。 為了克服這個問題,我添加了另一個輸入框,其屬性為style="display:none" ,並且效果很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM