Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Создание на форме скрытого елемента с нужными данными  (Прочитано 13742 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« : 03-04-2009 04:11 » 

HTML&JavaScript (раздела )

Задачка: На экран нужно вывести картинку с номером N (где 0 <= N <= 25). Создал кнопку, на нажатие которой запускается функция JavaScript Next() - открываэт картинку со следующим номером.
Проблема следующая:
если пишу
Код:
<script>
    var nomer = 0
    function Show()
    {
        nomer++
        ...
    }
...
</script>
...
то при каждом запуске функции переменная nomer стает 0. Решил записать номер картинки в елемент hidden.value, но в поле hidden.value ничего программа не дает.
Вопрос: какой елемент можно использовать, чтоб его на форме видно не было, и чтоб была возможность хранить в нем значение (или как иначе решить эту проблему)?
Записан
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #1 : 03-04-2009 04:12 » 

Решил записать номер картинки в елемент hidden.value, но в поле hidden.value ничего программа не дает.

Поправочка: ...но в поле hidden.value ничего программа записать не дает.
Записан
Chuda
Гость
« Ответ #2 : 03-04-2009 04:16 » 

может стоит показать весь код?
Судя по оформлению этого обрывка и постановке вопроса причина глюка в общей запутанности и бардаке.
Записан
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #3 : 03-04-2009 04:22 » 

Прошу изинить за то что плохо описал проблему.  Жаль
Вот весь код:
Код:
<html>
<head>
<title>
Welcome to Images
</title>
<script language="JavaScript">
function Get(s)
{
var num = 0;
//Знаходимо новий шлях
num = eval(s)
num = num + 1
if (num > 25)
num = 0
form0.data.value = num
result = new String()
result = "images/" + num + ".jpg"
alert(num)
return result
}
function Previous()
{
return 0
}
function Next()
{
imgname = new String()
imgname = Get(form0.data.value)
//form0.img0.src = imgname
return 0
}
</script>
</head>

<body background="bg1.jpg">
<form name="form0">
<img name="img0" src="images/0.jpg"><br>
<input type=hidden name="data" value="0">
<input type=submit value="Previous" >
<input type=submit value="Go to main" action="index.html">
<input type=submit value="Next" onclick="Next()">
</form>
</body>
</html>
Вопрос: почему у form0.data.value не записывает новое значение?
Записан
Chuda
Гость
« Ответ #4 : 03-04-2009 04:34 » 

а оно вообще работает?
Ну допустим, про language="JavaScript" я молчу. Так писали в прошлом веке, и браузеры продолжают понимать такую конструкцию.
Но вот отсутствие точки с запятой в конце строки — это же синтаксическая ошибка. И здесь она в каждой строке.
Инициализацию переменной не лишне бы выгнать из функции в начало кода, раз уж она должна происходить только раз, а не каждый раз при запуске функции.
form0.data.value — это что вообще за конструкция? Из какого языка?
Может автор имел в виду GetElementByUd, да  только и в написании ошибся и сам айдишник указать забыл?
Записан
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #5 : 03-04-2009 04:40 » 

Нормально работало всё, кроме "form0.data.value = num", вот и спросил.
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 03-04-2009 05:52 » 

Inkognito, скрипт без привязки к html коду, т.е без примера использования неинтеерсен
давай тестовый проект
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 03-04-2009 12:16 » 

Inkognito, конструкции типа
Код:
imgname = new String()
imgname = Get(form0.data.value)
не нужны. Пиши просто:
Код:
imgname = Get(getElementById('data').value);
....
<input type=hidden name="data" id="data" value="0">

Общее впечатление: безобразный код.
Атрибут language="JavaScript" замени на type="text/javascript".
Завершай выражение точкой с запятой. В том числе и в событиях типа onclick.
Не забывай объявлять переменные до использования.
Задавай переменным осмысленные имена.
Имена глобальных переменных не могут быть любыми, т.к. они, на самом деле, не глобальные, а свойства объекта window.
Ищещь проблем - используй (как и в твоем примере) подобные form0.img0.src конструкции. Иначе используй DOM.
« Последнее редактирование: 03-04-2009 12:18 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 08-04-2009 08:56 » new

Цитата: Шилькия
Но вот отсутствие точки с запятой в конце строки — это же синтаксическая ошибка. И здесь она в каждой строке.
Ты не права. Можно как ставить, так и не ставить точки с запятой. В стандарте ECMAScript этому вопросу отдельный раздел посвящён - о правилах интерпретации конструкций, не разделённых точкой с запятой.

P.S. Лично я ставлю по привычке.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines