Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.03.2009, 13:36
Новичок на форуме
Отправить личное сообщение для Griha Посмотреть профиль Найти все сообщения от Griha
 
Регистрация: 18.03.2009
Сообщений: 3

не учитывается последняя введенная цифра
Здравствуйте, я в програмировании новичок. Вот попытался создать простую форму где выполняется ариф.действие. Например умножение на 2. Но почему-то последняя введенная цифра не учитывается. Например, ввел 45 в ответе 8, ввел 456 в ответе 90. И так со всеми действиями. Как исправить?
Вот код:

Код:
<html><head>
<script language="JavaScript">
<!-- 
function ClearWidLen(r)   //функция ClearWidLen очищает значение формы
{
  document.all[r].value = "";
 }

function vsego1() {
ch=Number(document.all["ch1"].value);
document.all["vsego"].value=ch*2;
}
// --></script>
</head>
<body>
<input  size="5" onClick=ClearWidLen("ch1"); onkeydown=vsego1(); name="ch1" >х2= 
<input  size="5" onClick=ClearWidLen("vsego"); name="vsego" >, </p>
</body>
</html>
Событие "onkeyup" не применил т.к. оно не работает.
Из-за чего может не работать событие "onkeyup"?
Ответить с цитированием
  #2 (permalink)  
Старый 18.03.2009, 13:45
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

не учитывается последняя цифра, потому что на момент onkeydown она еще не введена
onkeyup отлично работает.
<html><head>
<script language="JavaScript">
<!-- 
function ClearWidLen(r)   //функция ClearWidLen очищает значение формы
{
  document.all[r].value = "";
 }

function vsego1() {
ch=Number(document.all["ch1"].value);
document.all["vsego"].value=ch*2;
}
// --></script>
</head>
<body>
<input  size="5" onClick=ClearWidLen("ch1"); onkeyup=vsego1(); name="ch1" >х2= 
<input  size="5" onClick=ClearWidLen("vsego"); name="vsego" >, </p>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 18.03.2009, 14:45
Новичок на форуме
Отправить личное сообщение для Griha Посмотреть профиль Найти все сообщения от Griha
 
Регистрация: 18.03.2009
Сообщений: 3

А не подскажите что сделать чтоб на момент onkeydown учитывалась последняя цифра?
У меня onkeydown и onkeyPress работают, а onkeyup не работает. Система XPSP2.
Ответить с цитированием
  #4 (permalink)  
Старый 18.03.2009, 14:48
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Griha
А не подскажите что сделать чтоб на момент onkeydown учитывалась последняя цифра?
onkeydown срабатывает до введения символа. Можно делать вычисления через 10 миллисекунд с помощью setTimeout, к этому времени символ уже введется. Но это, конечно, грязный хак.
Ответить с цитированием
  #5 (permalink)  
Старый 18.03.2009, 15:25
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Griha
У меня onkeydown и onkeyPress работают, а onkeyup не работает. Система XPSP2.
это проблемы исключительно ваши и вашей системы.
то, что у вас глючит система таким образом явление исключительное.
к тому же мне кажется что проблема в радиусе кривизны,а не в вашей системе.он слишком мал.
PS в каком браузере у вас якобы не работает onkeyup?
PPS код который я выложил пробовали?
у меня он отлично работает везде
Ответить с цитированием
  #6 (permalink)  
Старый 20.03.2009, 09:53
Новичок на форуме
Отправить личное сообщение для Griha Посмотреть профиль Найти все сообщения от Griha
 
Регистрация: 18.03.2009
Сообщений: 3

to Kolyaj
Спасибо за подсказку. Про грязный хак можно сказать
Цитата:
Ноги, крылья - главное хвост!
to Gvozd
Про радиус кривизны, я же писал
Цитата:
я в програмировании новичок
onkeyup и ваш код не работает в браузере MyIE (это надстройка к Internet Explorer ). Причем в самом Internet Explorer все работает.
Ответить с цитированием
  #7 (permalink)  
Старый 20.03.2009, 10:21
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Griha,
ну, так почитайте на девелоп-сайте вашей браузерной надстройки что с ней не так.
а вообще, попробуйте привести страницу в божеский вид:
0)обернуть атрибуты в кавычки
1)убрать languge в srcipt.он там нафик не нужен.актуально type="text/javascript"
2)код в коментарии оборчаивать тоже ни к чему
3)document.all является также нежелательным к употреблению ввиду некросбраузерности.в разделе статей про DOM на этом сайте написано как правильно получать элементы

если после этого не заработает, то не знаю что вам делать.
но очевидно что это проблема исключительно вашего myie
PS помимо осла в мире еще полно хороших, удобных, красивых,функциональных браузеров.
это я к тому что тестировать надо во всех по возможности.
и говорить не "не работает", а "не работает в там, там, и там", если это так есть.вот если нигде не заработало, то стоит задуматся, а правильно ли пишите
а если где-нибудь заработало, то стоит выяснить какие отличия
Ответить с цитированием
Ответ



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

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