通过js禁用按钮

ang*_*gus 3 primefaces jsf-2

我需要在文本输入值长度小于3的情况下禁用按钮.

我试图使用js但按钮没有被禁用它只是改变颜色

 <p:autoComplete id="ac"
                    value="#{bean.selectedNetCode}" 
                    completeMethod="#{bean.complete}"
                    maxlength="3"
                    size="3"
                    maxResults="10"
                    onkeyup="checkLength(this.value)">
        <p:ajax event="itemSelect" update="genButton" listener="#{bean.handleNetCodeChange}"/>
    </p:autoComplete> 



 function checkLength(value){
      if(value.length <= 2){
      document.getElementById("genButton").disabled = true;
 }
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

谢谢

Rin*_*PJr 6

您可以定义属性widgetVarp:commandButton,这会给你通过JavaScript访问组件.

然后,您可以使用一些方法.来自PrimeFaces 3.4文档:

  • disable():禁用按钮
  • enable():启用按钮

例:

<p:autoComplete onkeyup="checkLength(this.value)">/>
<p:commandButton widgetVar="myButton" />

function checkLength(value){
     if(value.length <= 2)
         myButton.disable();
}
Run Code Online (Sandbox Code Playgroud)