2013-02-26 22 views
0

我有一個具有「ice:selectInputText」的JSF + icefaces 1.8.2應用程序。JavaScript事件onkeyXXX在icefaces上不起作用1.8.2 ice:selectinputtext

我想添加以下javascript事件之一:onkeydown,onkeypress或onkeyup。 但他們不工作。 它們什麼都不做,甚至在瀏覽器中呈現時,它們甚至都不在網頁的HTML代碼中。

這是應該如何工作?

我想知道什麼時候按下「返回」鍵(javascript keycode 13),所以我不能使用java「valueChangeListener」或「textChangeListener」,然後在java backbean中管理它,因爲此鍵不會觸發這些鍵事件。

有人可以幫我嗎?

在此先感謝!

回答

0

它應該工作:

HTML:

<ice:selectInputText 
<!-- your stuff --> 
onkeypress="check(event);" 
</ice:selectInputText> 

的JavaScript:

function check(e) { 

     var key; 
     if(!window.event) { 
      key = e.which; 
     } else { 
      key = window.event.keyCode; 
     } 

     if(key == 13) { 
      alert('enter!'); 
     } 
    } 
+0

嗨!據我所知,這種方法行不通,無論是onkeypress,onkeydown,還是onkeyup事件。 – nahiko 2013-02-27 07:27:56

0

我解決它!那麼......有人給了我一個解決方法。

按下回車鍵,觸發冰:selectInputText「行動」,這樣的話,我可以在後面豆

0

我從你的問題描述假設標籤ID爲JS參數通過Java管理它功能。在這種情況下,我一直在解決同樣的問題。

在我的情況下,我想我的自定義腳本來限制用戶輸入。輸出HTML時,Icefaces更改標籤的ID。以ace:textEntry標籤'_input'作爲後綴,它會將包含表單ID作爲前綴追加到標籤ID並附加。因此,我的ace:textEntry標記的ID變成'customer-edit-form:company-name-text_input'。爲了避免這種使用this.id

標記爲工作標籤:

<ice:form id="customer-edit-form"> 
    <ace:textEntry styleClass = "edit-textbox" 
     id="company-name-text1" 
     label="Company" 
     labelPosition="left" 
     onkeyup="limitLengthByID(this.id, '4'); " 
     value="#{customerManagerBean.companyName}"> 
    </ace:textEntry> 
</ice:form>**strong text**