Using the below code, any input exceeding the specified maximum is removed. But this creates an effect where a character is typed and then immediately removed. I would prefer to simply prevent characters from being inputted.
<textarea id="textarea" onKeyDown="limitText()" onKeyUp="limitText()">
</textarea>
<span name="charcount_text" id="charcount_text"></span>
<script type="text/javascript">
function limitText() {
var count = document.getElementById('textarea').value.length;
var remaining = 4000 - count;
if(remaining <= 0) {
document.getElementById('charcount_text').innerHTML = '4000 character limit reached.' ;
document.getElementById('textarea').value = document.getElementById('textarea').value.substring(0, 4000);
} else if(remaining <= 50) {
document.getElementById('charcount_text').innerHTML = '4000 character limit, ' + remaining + ' remaining.';
} else {
document.getElementById('charcount_text').innerHTML = '';
}
}
</script>
Using the below code, any input exceeding the specified maximum is removed. But this creates an effect where a character is typed and then immediately removed. I would prefer to simply prevent characters from being inputted.
<textarea id="textarea" onKeyDown="limitText()" onKeyUp="limitText()">
</textarea>
<span name="charcount_text" id="charcount_text"></span>
<script type="text/javascript">
function limitText() {
var count = document.getElementById('textarea').value.length;
var remaining = 4000 - count;
if(remaining <= 0) {
document.getElementById('charcount_text').innerHTML = '4000 character limit reached.' ;
document.getElementById('textarea').value = document.getElementById('textarea').value.substring(0, 4000);
} else if(remaining <= 50) {
document.getElementById('charcount_text').innerHTML = '4000 character limit, ' + remaining + ' remaining.';
} else {
document.getElementById('charcount_text').innerHTML = '';
}
}
</script>
Use the maxlength
attribute:
<textarea id="textarea" maxlength="4000" onkeyup="limitText()"></textarea>
function limitText() {
var ta= document.getElementById('textarea'),
count= ta.value.length,
ml= ta.maxLength,
remaining= ml - count,
cc= document.getElementById('charcount_text');
if(remaining <= 0) {
cc.innerHTML = ml+' character limit reached.' ;
} else if(remaining <= 50) {
cc.innerHTML = ml+' character limit, ' + remaining + ' remaining.';
} else {
cc.innerHTML = '';
}
}
Fiddle
Try this
$.fn.lenghtLimit = function(numLimit) {
var currentEle = $(this);
function main() {
var getCurrentVal = currentEle.val();
if (getCurrentVal.length > numLimit) {
currentEle.val(getCurrentVal.substring(0, numLimit));
}
}
$(document).on("keyup", currentEle, main);
}
// call method here with number limit
$("#numberInput").lenghtLimit(10);
You can limit any input or textarea value length using this https://jsfiddle/akalankaimesh/7hkagewh/