Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.04.2010, 08:32
Аспирант
Отправить личное сообщение для Эллурн Посмотреть профиль Найти все сообщения от Эллурн
 
Регистрация: 31.03.2010
Сообщений: 30

А сколько элементов в INPUT'е?
Ситуёвина такая:
Код:
<tr>
	<td align="center"><b><i>Имя новости </i></b></td>
	<td><input name="news_name" id="news_name" maxlength=50 size=50 onfocus="fdinamicdescr(this)" onkeypress="dinamicdescr(this)" onblur="cleardd(this)" descr="Введите заголовок новости. Обязательное поле. У вас осталось символов: "></td>
	<td width=3%>&nbsp </td>
	<td id="news_namedescr" width=33%>&nbsp </td>
</tr>
И таких полей для ввода три (имя ячейки таблицы после каждого поля равно имя поля+descr)

Вот это у меня происходит по событию onKeypress:
Код:
function dinamicdescr(myself) {
                descfield = myself.name+"descr"
		maxlength=myself.getAttribute("maxlength")
		element=document.getElementById(descfield)
		m=maxlength-myself.value.length
		element.innerHTML=myself.getAttribute("descr")+m
        }
Можете попробовать сами, код оригинальностью не пахнет. Тогда увидите, что происходит следующее: при первом нажатии на кнопку внутри поля ввода, в ячейке таблицы рядом с ним никаких изменений не происходит. Как было, в данном случае - 50, так и осталось. Если же стереть введенный символ, то получится 49!!! Другими словами, реализация подсчета на экране запаздывает всегда на 1 символ. Подскажите, пожалуйста, как можно пофиксить этот баг?

Последний раз редактировалось Эллурн, 03.04.2010 в 08:39.
Ответить с цитированием
  #2 (permalink)  
Старый 03.04.2010, 09:48
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от Эллурн
А сколько элементов в INPUT'е?
В input'е элементов быть не может! Пишите, пожалуйста, информативные названия тем.

Сообщение от Эллурн
запаздывает всегда на 1 символ. Подскажите, пожалуйста, как можно пофиксить этот баг?
onkeyup и onchange. Или проверять через некоторый промежуток времени (setTimeout).
Ответить с цитированием
  #3 (permalink)  
Старый 04.04.2010, 17:23
Аспирант
Отправить личное сообщение для Эллурн Посмотреть профиль Найти все сообщения от Эллурн
 
Регистрация: 31.03.2010
Сообщений: 30

Извини, не элементов в INPUT'e, а символов в input.values)))

И спасибо за ответ =)
Ответить с цитированием
  #4 (permalink)  
Старый 04.04.2010, 21:16
Новичок на форуме
Отправить личное сообщение для rsod Посмотреть профиль Найти все сообщения от rsod
 
Регистрация: 04.04.2010
Сообщений: 1

да, onkeyup в связке с keypress надо использовать. Кстати, код не очень оптимизирован, я бы посоветовал примерно такой вариант:
<input type="text" name="elem1" onkeypress="checkLength(this);" onkeyup="checkLength(this);"><span id="elem1_lth"></span>
<script>
function checkLength(e){
document.getElementById(e.name+'_lth').innerHTML = (typeof e.maxlength == 'undefined')?e.value.length:e.maxlength-e.value.length;
}
</script>

а ещё лучше присваивать event-ы яваскриптом
Ответить с цитированием
  #5 (permalink)  
Старый 04.04.2010, 22:59
Аспирант
Отправить личное сообщение для Эллурн Посмотреть профиль Найти все сообщения от Эллурн
 
Регистрация: 31.03.2010
Сообщений: 30

Сообщение от rsod Посмотреть сообщение
а ещё лучше присваивать event-ы яваскриптом
Встречал что-то подобное несколько раз, но не смог найти целиком описание, что это, как и зачем. В лсновном - просто потому, что не знаю, что надо искать Можно рассказать подробнее или дат ссылочку?
Ответить с цитированием
  #6 (permalink)  
Старый 05.04.2010, 10:08
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

http://javascript.ru/tutorial/events
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как прочитать список имён элементов в Cookie? Бобр Общие вопросы Javascript 6 09.02.2010 08:47
как записать id всех элементов в массив? SunYang Общие вопросы Javascript 21 06.02.2010 22:50
IE 6 сколько можно? zzz Internet Explorer 15 18.08.2009 02:57
Динамическая подстановка названий элементов spnova Элементы интерфейса 1 15.08.2009 11:39
Выбор элементов и построение списка выбранных элементов. madgals Events/DOM/Window 6 14.04.2009 22:30