Primefaces使按钮在输入文本时启用



我有一个素数输入文本区域和一个素数按钮。我希望仅在文本区域中输入任何值时才启用该按钮。

<p:inputTextarea id="dumpnotes" rows="10" cols="90" value="#{postProcessedDump.keyedinContent}" style="color: #000000" styleClass="inputarea" />
<p:commandButton value="Save" actionListener="#{dumpController.saveDumpNotesContent}" update="dumpnotes" oncomplete="PF('dumpNotesSaveSuccessDialog').show();"/>
<p:inputTextarea id="dumpnotes" rows="10" cols="90" value="#{postProcessedDump.keyedinContent}" style="color: #000000" styleClass="inputarea">
     <p:ajax event="keyup" update="saveButton" />
</p:inputTextarea>
<p:commandButton id="saveButton" value="Save" actionListener="#{dumpController.saveDumpNotesContent}" update="dumpnotes" oncomplete="PF('dumpNotesSaveSuccessDialog').show();" disabled="#{empty postProcessedDump.keyedinContent}" />

编辑(根据您的评论):

  • 尝试添加 global="false" 以不触发 ajaxStatus <p:ajax event="keyup" global="false" update="saveButton" /> 。根据您的PrimeFaces版本,您可能需要删除事件名称并仅写入<p:ajax global="false" update="saveButton" />

这些问题似乎与JavaScript相当相关,所以我会尝试以下方法。

首先,我将定义一个JavaScript函数来检查是否启用commandButton

function validateInput() {
    if(document.getElementById('dumpnotes').value == '') {
        document.getElementById('button').disabled = true;
    } else {
        document.getElementById('button').disabled = false;
    }
}

所以你只需要给commandButton一个id(例如 id="button" ),并在inputTextarea中使用onkeyup事件,如下所示:

<p:inputTextarea id="dumpnotes" onkeyup="validateInput()" ... />

我希望这就是你要找的。

相关内容

  • 没有找到相关文章

最新更新