3

如果文本输入值长度小于 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;
 }

知道为什么吗?

谢谢

4

1 回答 1

7

您可以定义 , 的属性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();
}

2021 年 7 月更新

正如 dian jin 在评论中指出的那样,使用 PimeFaces 4.0 到 5.0 时,您需要调用PF('myButton').disable();以正确引用 widgetVar。

于 2012-10-04T15:13:47.140 回答