Javascript.RU

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

Помогите начинающему программисту ;)
Всем доброго времени суток! я недавно начал изучать Javascript и захотел попробоваться на простейших задачках. захотел сделать что то типа гадалки, которая отвечает на вопросы типа "да, нет". написал, но почему то не работает. помогите разобраться в чем дело и подскажите еще пару задачек, дабы повысить уровень владения языком.
<html> 
<head> 
<title> Узнай правду </title> 

</head> 
<body> 
<textarea>Задайте свой вопрос</textarea> 
<script language="JavaScript" > 
var a=new Array(); 
var rand=new Date(); 
fraza[0]='По любому'; 
fraza[1]='к сожалению этому не бывать'; 
fraza[2]='очень даже может быть'; 
fraza[3]='вероятность маленькая, но все таки может быть'; 
q=(rand.getSeconds())%fraza.length; 
</script> 
<button onclick="javascript:alert(fraza[q]);">Узнать ответ</button> 
</body> 
</html>


вот все что написал

Последний раз редактировалось Андрей Параничев, 21.07.2008 в 22:42. Причина: Пользуйтесь, пожалуйста, bb-кодами для оформления выкладываемого листинга кода.
Ответить с цитированием
  #2 (permalink)  
Старый 21.07.2008, 22:53
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Много ошибок и неточностей:
1) onClick не требует указания протокола "javascript:". Его указывать следует только в подстановке вместо url, например в аттрибуте href элемента <a>.
2) JavaScript выполняется последовательно только один раз, поэтому вам, в данном случае, нужно создавать функции, которые потом будут вызываться по определённым событиям.
3) Для того, чтобы получить целое число следует пользоваться генератором случайных чисел, а целочисленное деление, которое вы использовали, в данном случае работает неверно: вы могли бы легко получить числа вне диапазона 0-3. Лучше использовать подобный способ получения случайного числа:
parseInt(Math.random()*4)

Math.random() возвращает случайное число от 0 до 1, умножение на 4 увеличивает диапазон на отрезок от 0 до 3. А parseInt приводит это число к целому виду. Конечно связи с введенным текстом не будет никакой, но зато работает
Ответить с цитированием
  #3 (permalink)  
Старый 21.07.2008, 22:53
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

onclick="alert(fraza[q]);"
Ответить с цитированием
  #4 (permalink)  
Старый 21.07.2008, 22:58
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Андрей Параничев, в вашем сообщении полезен только первый пункт. Второй пункт, скорее всего, не ставился в задаче, а третий прекрасно работает и у ТС (% -- это не целочисленное деление, а остаток от деления).
Ответить с цитированием
  #5 (permalink)  
Старый 21.07.2008, 23:07
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Kolyaj,
Мда, мне видимо пора ложиться спать
Мне, почему то, показалось что fraza.length это длина текста записанного в textarea. От этого второе и третье замечание. Все верно, моя ошибка.
Ответить с цитированием
  #6 (permalink)  
Старый 22.07.2008, 12:34
Аватар для Хранитель Света
Интересующийся
Отправить личное сообщение для Хранитель Света Посмотреть профиль Найти все сообщения от Хранитель Света
 
Регистрация: 11.05.2008
Сообщений: 20

Сообщение от druna Посмотреть сообщение
Всем доброго времени суток! я недавно начал изучать Javascript и захотел попробоваться на простейших задачках. захотел сделать что то типа гадалки, которая отвечает на вопросы типа "да, нет". написал, но почему то не работает. помогите разобраться в чем дело и подскажите еще пару задачек, дабы повысить уровень владения языком.
<html> 
<head> 
<title> Узнай правду </title> 

</head> 
<body> 
<textarea>Задайте свой вопрос</textarea> 
<script language="JavaScript" > 
var a=new Array(); 
var rand=new Date(); 
fraza[0]='По любому'; 
fraza[1]='к сожалению этому не бывать'; 
fraza[2]='очень даже может быть'; 
fraza[3]='вероятность маленькая, но все таки может быть'; 
q=(rand.getSeconds())%fraza.length; 
</script> 
<button onclick="javascript:alert(fraza[q]);">Узнать ответ</button> 
</body> 
</html>


вот все что написал
Да хороший подход вот только забыл вклячить быиблиотеки <stdlib.h> & <time.h> ))))А так нормлаьно)))

Последний раз редактировалось Хранитель Света, 22.07.2008 в 14:17.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобрать скрипт! Forgott Общие вопросы Javascript 14 22.02.2009 20:51
Помогите с формированием ссылки AnGor Общие вопросы Javascript 0 27.08.2008 17:53
Помогите разобраться с логикой поведения скрипта MarkupDeveloper jQuery 3 21.06.2008 18:04
Помогите динамически интегрировать значение в URL Yurii Общие вопросы Javascript 14 07.05.2008 15:12
Помогите разобраться с проблемой SergeiAzarov (X)HTML/CSS 0 28.03.2008 18:51