Я только начал изучать JavaScript. У меня вопрос. Когда имеется более 160 символов, я не хочу вводить символы. Как я могу решить эту проблему?
<body> <textarea onkeypress = "olay()" id = "twitter" cols = "30" rows = "10"></textarea> <br>
<div id = "sonuc"></div>
</body>
<script type = "text/javascript">
i = 0;
function olay() {
i += 1;
if (i > 160) {
document.getElementById("sonuc").innerHTML = "Warning. Over 160 character";
document.getElementById("twitter").addEventListener("onkeypress", function(event)) {
event.preventDefault();
}
} else {
document.getElementById("sonuc").innerHTML = "Numver of charecter : " + i;
}
}
</script>спасибо, но я хочу ограничить это с помощью JavaScript.
Я добавил, как это сделать с помощью JavaScript.
Я обновил свои решения, вам стоит их проверить.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам не нужен JavaScript; текстовые входы имеют Атрибут maxlength.
<textarea
onkeypress = "olay()"
id = "twitter"
cols = "30"
rows = "10"
maxlength = "160"></textarea>@ KasimŞEN * Почему?maxlength встроен в HTML и работает с каждый браузер
Хм, хорошо, я просто пытаюсь выяснить пределы JavaScript. Спасибо.
@ KasimŞEN: Вы можете сделать это с помощью JavaScript, но это довольно сложно (нужно сохранить местоположение выделения, вырезать текст и вернуть выделение - есть больше способов поместить текст в текстовое поле, чем с помощью клавиатуры, как вставка правой кнопкой мыши), и в этом нет смысла.
@ KasimŞEN Или он может просто сохранить предыдущий ввод и вернуть его, если последнее изменение вызвало value.length> 160.
@HaLeiVi: Еще нужно восстановить выбор.
Почему? При изменении замените значение.
@HaLeiVi: Если курсор, вставляющий текст, находится где угодно, кроме конца…
Это с html
<textarea
id = "twitter"
cols = "30"
rows = "10"
maxlength = "160"
placeholder = "Enter text here...">
</textarea>
Лучшее, что вы можете сделать, это написать регулярное выражение и проверять его каждый раз при нажатии клавиши.
Вот как вы бы сделали это с помощью JavaScript и HTML.
<body>
<textarea id = "twitter" cols = "30" rows = "10" maxlength = "160" placeholder = "Enter text here..."></textarea><br>
<div id = "sonuc"></div>
<script type = "text/javascript">
function olay() {
var text = document.getElementById("twitter").innerHTML;
var i = text.length;
if (i >= 160) {
document.getElementById("sonuc").innerHTML = "Warning. Reached 160 character limit.";
}
else {
document.getElementById("sonuc").innerHTML = "Number of charecter : " + i;
}
}
document.addEventListener("keypress", function(){
olay();
});
document.addEventListener("keydown", function(){
olay();
});
</script>
</body>
Вы имеете в виду, что хотите создать поле, содержащее не более 160 символов.