onkeyXXX上的Javascript事件不适用于icefaces 1.8.2 ice:selectinputtext

时间:2013-02-26 15:04:32

标签: java javascript jsf javascript-events icefaces

我有一个JSF + icefaces 1.8.2应用程序,它有一个“ice:selectInputText”。

我想只添加以下javascript事件之一:onkeydown,onkeypress或onkeyup。 但是它们不起作用。 它们什么都不做,当它在浏览器中呈现时,它们甚至不在Web的HTML代码中。

它应该如何运作?

我想知道何时按下“return”键(javascript keycode 13),所以我不能使用java“valueChangeListener”或“textChangeListener”然后在java backbean中管理它,因为这个键不会触发那些事件

有人可以帮帮我吗?

提前致谢!

3 个答案:

答案 0 :(得分: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!');
       }
    }

答案 1 :(得分:0)

我解决了!!嗯......有人给了我解决方法。

按下返回键,触发冰:selectInputText“action”,然后我可以通过后面的bean中的java来管理它

答案 2 :(得分:0)

我从您的问题描述中假设标签id是js函数的参数。在这种情况下,我一直在与同样的问题作斗争。

在我的情况下,我希望我的自定义脚本限制用户输入。输出HTML时,Icefaces会更改标记的ID。它将包含表单id作为前缀附加到标记id,并附加,如果是ace:textEntry标记' _input '作为后缀。因此,我的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**