当h:inputText没有值时,禁用h:commandButton

时间:2013-05-18 13:30:44

标签: javascript jsf-1.2

我有两个h:inputText文本框和一个h:commandButton。如果在任一文本框中没有值,我该如何禁用该按钮?另外如果我在其中一个文本框中有值,我如何禁用其他文本框。请在下面找到我的示例代码:

<h:form id="myForm">    
    <h:inputText id="first" value=#{myBean.first}></h:inputText>
    <h:inputText id="second" value=#{myBean.second}></h:inputText>
    <h:commandButton id="submit" action="#{myBean.submit}" value="Submit"/>
</h:form>

使用Javascript:

document.getElementById("myForm:first").onkeyup = function() {
    if (this.value.length > 0) {
        document.getElementById("myForm:second").disabled = true;
        document.getElementById("myForm:submit").disabled = false;
    } else {
        document.getElementById("myForm:second").disabled = false;
        document.getElementById("myForm:submit").disabled = true;
    }
};
document.getElementById("myForm:second").onkeyup = function() {
    if (this.value.length > 0) {
        document.getElementById("myForm:first").disabled = true;
        document.getElementById("myForm:submit").disabled = false;
    } else {
        document.getElementById("myForm:first").disabled = false;
        document.getElementById("myForm:submit").disabled = true;
    }
};

这里的问题是它工作正常,但我必须在外面点击一次以启用/禁用按钮。无论如何,按钮会自动启用,而另一个文本框会在数据输入其中一个文本框时被禁用吗?

2 个答案:

答案 0 :(得分:0)

onload或直接在commandButton标签中保持按钮为         disabled="true"。  对inpuText实现onchange或onblur方法,并将样式设置为commandButton disable ='false'

答案 1 :(得分:-1)

使用onchange事件而不是keyup