2016-02-09 45 views
0

我有一個只包含selectOneMenu輸入和提交按鈕的表單。當我在selectOneMenu中按Enter時,沒有任何反應。如果我在表單中有一個文本輸入,當我按下Enter鍵並且焦點在文本輸入中時,表單被提交,但如果焦點位於selectOneMenu中,則永遠不會提交表單。如何在PrimeFaces selectOneMenu中按下Enter時提交表單?

你可以看到在PrimeFaces相同的行爲展示在這裏:http://www.primefaces.org/showcase/ui/ajax/dropdown.xhtml

有沒有一種方法,使輸入一個selectOneMenu用於輸入提交表單?如果菜單沒有顯示,Enter應該只提交表單,因爲Enter here用於選擇一個值。

我試圖用jQuery來捕捉按鍵,但是當按下Enter鍵時它從來沒有被調用 - 其他按鍵被捕獲。

我正在使用PrimeFaces 5.3。

謝謝!

/布賴恩

+0

行爲櫥窗證實。爲了解決這個問題,請查看相應的PrimeFaces js文件的來源,看看裏面的東西是否阻止了這個。然後,您可以重寫PrimeFaces JavaScript並獲得正確的行爲。也請檢查GitHub中的PF issuelist並查看它是否在5.3.x和/或6.0-SNAPSHOT中修復。如果沒有,請在那裏提交問題 – Kukeltje

+0

謝謝 - 我設法通過覆蓋PrimeFaces javascript來實現它。 Anf我已經在PF GitHub上提交了一個問題。 –

回答

1

我設法通過覆蓋selectOneMenu用於的handleEnterKey中,我只函數調用Event.preventDefault和event.stopPropagation當菜單可見,使等工作。在PrimeFaces 5.3版本中,event.preventDefault和event.stopPropagation總是被調用,無論菜單是否可見(從而阻止了Enter鍵)。

PrimeFaces.widget.SelectOneMenu.prototype.handleEnterKey = function(event) { 
    if (this.panel.is(':visible')) { 
     this.selectItem(this.getActiveItem()); 
     event.preventDefault(); 
     event.stopPropagation(); 
    } 
} 

PrimeFaces問題:https://github.com/primefaces/primefaces/issues/1127#issuecomment-182269814

+0

謝謝,這是openource應該如何工作。希望嘿包括你的補丁在精英版本和6.0。 – Kukeltje

相關問題