|
|
|
| Здравствуйте! Вот к примеру есть форма с полем для ввода текста. И максимально в это поле можно вводить допустим 20 символов. Как сделать так что бы на против этого поля был счетчик который отсчитывал бы в обратном порядке количество введенных символов, ну т.е. 20,19,18… и т.д. И что бы когда ввели 20 символов ввод бы прекращался, ну т.е. больше 20 символов ввести было бы нельзя. Как это можно сделать? Очень ли это сложно?
Заранее благодарен. | |
|
|
|
|
|
|
|
для: Mefisto84
(18.04.2006 в 17:50)
| |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="javascript">
function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit)
{field.value = field.value.substring(0, maxlimit);}
else
{countfield.value = maxlimit - field.value.length;}
}
</script>
</head>
<body>
<form>
<textarea name="Q336" cols="40" rows="5" wrap="hard" onKeyDown="textCounter(this.form.Q336,this.form.remLentext,20);" onKeyUp="textCounter(this.form.Q336,this.form.remLentext,20);"></textarea>
<br>Characters remaining: <input type=box readonly name=remLentext size=3 value=20>
</form>
</body>
</html>
|
Правда, можно еще добавить событие onpaste(). | |
|
|
|
|
|
|
|
для: codexomega
(18.04.2006 в 18:46)
| |
<form><input size=24 maxLength=20
onkeyup=this.form.t2.value=this.maxLength-this.value.length
onpaste=this.onkeyup()><br>
<input name=t2>
|
| |
|
|
|
|
|
|
|
для: 12345
(18.04.2006 в 19:07)
| | Да, именно это я имел в виду. Спасибо. Но вот у меня теперь другой вопрос: а если у меня 10 окон для ввода, мне для каждого окна нужно прописать данный скрипт? Или можно как-то по другому сделать? И еще, если я пропишу его для каждого окна, не сильно ли будет перегружена страница? Ну то есть не будет ли она слишком долго грузится из-за такого большого количесnва JavaScript ? | |
|
|
|
|
|
|
|
для: Mefisto84
(18.04.2006 в 19:59)
| | Тогда
onkeyup=f1(this) onpaste=f1(this)
.
Это сильно не перегрузит. Но есть возможность перехватывать перерывания на документе и таким образом исключить их из полей.
document.onpaste=document.onkeyup=function(ev){
t=document.all?ev.target:event.srcElement;
if(t.tagName=='INPUT'&&t.className=='ogranichVv')return;
выполнить действия, узнав спаренное поле ввода, напр., по t.id .
}
|
Но тут надо класс прописать, ид, систему продумать. Делайте, если хотите.
Да, можно не класс, а name вместо него. | |
|
|
|