Я хочу использовать jquery для ограничения количества символов в редактируемом div (или в форме ввода).
Ограничить количество символов в поле ввода
Ответ 1
Что касается поля ввода, вы можете использовать атрибут maxlength. Если вы ищете div, проверьте следующее,
$(function() {
$ ('#editable_div').keydown ( function (e) {
//list of functional/control keys that you want to allow always
var keys = [8, 9, 16, 17, 18, 19, 20, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 144, 145];
if( $.inArray(e.keyCode, keys) == -1) {
if (checkMaxLength (this.innerHTML, 15)) {
e.preventDefault();
e.stopPropagation();
}
}
});
function checkMaxLength (text, max) {
return (text.length >= max);
}
});
<div id="editable_div" contentEditable="true" onclick="this.contentEditable='true';" >TEXT BEGIN:</div>
Изменить: вы должны переписать функцию checkMaxLength, чтобы игнорировать вкладки и новую строку
Ответ 2
использовать maxlength
в теге input
<input type="text" maxlength="20" />
Ответ 3
Атрибут Maxlength - для браузера, который поддерживает эту функцию.
Javascript - для других.
<input class="test-input" type="text" maxlength="12" />
<script>
$('.test-input').unbind('keyup change input paste').bind('keyup change input paste',function(e){
var $this = $(this);
var val = $this.val();
var valLength = val.length;
var maxCount = $this.attr('maxlength');
if(valLength>maxCount){
$this.val($this.val().substring(0,maxCount));
}
});
</script>
Ответ 4
Это должно сработать для вас, я думаю.
HTML
<input type="text" name="myText" id="myText" data-maxlength="10" />
JQuery
$('#myText').keyup(validateMaxLength);
function validateMaxLength()
{
var text = $(this).val();
var maxlength = $(this).data('maxlength');
if(maxlength > 0)
{
$(this).val(text.substr(0, maxlength));
}
}
Ответ 5
Если вы хотите использовать JQuery, вы можете написать что-то самостоятельно или просто использовать существующий плагин, например этот.
Но я согласен с dku.rajkumar... Что не так с использованием атрибута maxlength
?
<input type="text" maxlength="15" />
Если вы самый большой поклонник JQuery когда-либо, хотя и отчаянно хотите установить maxlength
на все поля ввода сразу, выполните следующие действия:
$(document).ready(function() {
$('input[type="text"]').attr({ maxLength : 15 });
});
Просто имейте в виду, что этот метод (JQuery one) не будет работать для людей, у которых есть (по какой-либо причине) JavaScript отключен. Хотя атрибут maxlength
тега input
работает для всех во всех браузерах.
Ответ 6
Пусть говорят, что это вход в форму.
вы можете сделать это с атрибутом maxlength, но если вы скажете "используя jQuery",
здесь решение.
$('input#limited').attr('maxlength', '3');
или вы можете проверить каждое нажатие клавиши
$('input#limited').keypress(function() {
/*
check for 3 or greater than 3 characters.
If you check for only greater than 3, then it will let
you write the fourth character because just before writing,
it is not greater than three.
*/
if($(this).val().length >= 3) {
$(this).val($(this).val().slice(0, 3));
return false;
}
});
Ответ 7
используйте только атрибут "maxlength". Подробнее о входных атрибутах можно узнать в вкладке w3
Ответ 8
$('#id').keypress(function(e) {
var foo = $(this).val()
if (foo.length >= 14) { //specify text limit
return false;
}
return true;
});