我有一个自动完成输入文本,因为我想在valueChangeListener上使用关键代码,因为我们可以使用event.getKeyCode在javascript中获取它。我使用jsf 1.2和icefaces 1.7.2。
我想在valuechangelistener上输入密钥代码。
<ice:selectInputText id="AutoCmpTxt11" rows="10" width="300"
valueChangeListener="#createJournalVoucherBean.changeDebitAccNameValueChangedListener}"
value="#{createJournalVoucherBean.debitAccount.name}" partialSubmit="true"
autocomplete="true">
这里的听众如下。
public void changeDebitAccNameValueChangedListener (ValueChangeEvent event) throws InterruptedException {
String searchWord = ((String) event.getNewValue()).trim().toUpperCase();
//Here I want event.getkeycode like that.
}
答案 0 :(得分:0)
你需要什么?您已经拥有searchWord
。如果您想要的只是出于某种原因获得最后一个字符,那么只需使用String#charAt()
。
char lastChar = searchWord.charAt(searchWord.length() - 1);
答案 1 :(得分:0)
以下是进入密钥检测的示例代码。
您可以根据需要为其他按键事件执行此操作。
public void changeDebitAccNameValueChangedListener (ValueChangeEvent event) throws InterruptedException {
String searchWord = ((String) event.getNewValue()).trim().toUpperCase();
//-- Code for key detection
keyPressedEvent(FacesContext.getCurrentInstance());
//--
}
private void keyPressedEvent(FacesContext facesContext) {
try {
Map requestParemeterMap = facesContext.getExternalContext()
.getRequestParameterMap();
KeyEvent keyEvent = new KeyEvent(this , requestParemeterMap);
if (keyEvent.getKeyCode() == KeyEvent.CARRIAGE_RETURN) {
// do your custom processing
}
} catch (Exception e) {
e.printStackTrace();
}
}