I need to enable / disable a button on a JSF 2.0 page depending on user has entered text in a text area or not.
However, while enabling/disabling the button works, the action is not getting invoked.
Here is the code:
<script>
function countChar() {
var val = findElement('inputNoteTextArea');
var len = val.value.length;
var maxLen = 400;
var charLeft;
$('#charNum').text(
'Note:' + maxLen + ' characters left out of ' + maxLen);
if (len >= maxLen) {
val.value = val.value.substring(0, maxLen);
$('#charNum').text(' you have reached the limit');
document.getElementById('noteSubmitButton').disabled = false;
} else if (len > 0 ){
charLeft = maxLen - len;
$('#charNum').text(
'Note :' + charLeft
+ ' characters left out of ' + maxLen);
document.getElementById('noteSubmitButton').disabled = false;
} else {
charLeft = maxLen - len;
$('#charNum').text(
'Note :' + charLeft
+ ' characters left out of ' + maxLen);
document.getElementById('noteSubmitButton').disabled = true;
}
}
</script>
<h:inputTextarea
value="#{requestScopeBean.notes}" rows="6"
cols="90" onkeyup="countChar();"
id="inputNoteTextArea" binding="#{requestScopeBean.inputNoteText}"> </h:inputTextarea>
<div id="charNum" class="fontNormal11">
<span class="fontB11">Note:</span> 400 characters
left out of 400
</div>
<a4j:commandButton styleClass="cmdButton marR5 floatL"
value="Save Note" id="noteSubmitButton"
render="NotesForm"
action="#{requestScopeBean.saveNotes}"
title="Submit" disabled="#{requestScopeBean.enableDisableButton}"
oncomplete="countChar();"/>
<script>
document.getElementById('noteSubmitButton').disabled = true;
</script>