![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
Есть, например, три массива:
("а", "и", "т") ("б", "к", "у") ("в", "л", "ф") Не могу сообразить как сделать: пользователь ввёл в поле букву "к", скрипт проверяет в каком массиве эта буква и выводит число 2. В дальнейшем я планирую суммировать эти числа, но думая с этим я сама справлюсь. --------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
А нельзя что-ли все массивы последовательно просмотреть?
|
|||
|
||||
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
Как-то всё сложно, а проще нельзя? У меня работает, но почему-то алерт выскакивает 2 раза...
Добавлено через 3 минуты и 2 секунды Знаю зачем document.write, а зачем return? А return -1? Добавлено через 5 минут и 30 секунд Почему используется return, а не document.write? --------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Один из них — точно не мой. return необходим для того, чтобы функция вернула значение. Использовать метод document.write в можно исключительно во время загрузки страницы, а функции можно всегда, например, при возникновении события (кнопку нажали, курсор переместили и проч.). return -1 выполнится в том случае, если пользователь введет буковку, которая вообще не встречается ни в одном массиве. Добавлено через 2 минуты и 17 секунд В вашем случае использовать метод document.write нельзя, т.к. требуется реакция на событие — пользователь ввел букву с клавиатуры. |
|||
|
||||
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
А если буковки, допустим в 2 полях, эти поля надо проверять по очереди? А если 9 полей по 1 букве? Можно ли эту проверку сделать одним махом?
Добавлено через 7 минут и 41 секунду Если id формы =t1 писать alert(whereLetterLocated(t1));? У меня так пишет -1. --------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
| Amphiluke |
|
||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Можно (почти) всё при наличии соответствующего опыта. При правильном построении страницы поля ввода должны находиться на форме. Назначьте форме идентификатор id, а полям какой-нибудь класс (например, class="inputField"), и когда пользователь введет все буковки и (я полагаю) нажмет на кнопочку, вызовите функцию, которая переберёт все поля на форме при помощи метода getElementsByTagName("input"), проверяя по ходу, обладает ли элемент формы соответствующим классом "inputField". Если обладает, то считать с поля значение value и выполнить ранее написанную функцию whereLetterLocated() (см. пост 2). Я понимаю, что (наверное) звучит неперевариваемо, но на самом деле нужно немного почитать теорию, и тогда все станет просто и ясно...
Функция ждет, что вы будете передавать не id, а букву которую ввел пользователь (т.е. значение value поля). Это сообщение отредактировал(а) Amphiluke - 17.11.2009, 15:20 |
||||
|
|||||
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
Объясните мне эту строчку: str.indexOf(text1.value) != -1
--------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Я с помощью метода join превращаю массив в строку из элементов массива. Метод indexOf проверяет, есть ли в строке указанный символ. Если есть, то indexOf возвращает позицию символа, а если нет, то возвращает -1. Это, на мой взгляд, самый простой способ проверить, есть ли буква в массиве...
Добавлено через 8 минут и 39 секунд Вот что получилось у меня...
|
|||
|
||||
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
Спасибо, буду разбираться!
--------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
6 полей, я буквы ввела в первые 3, а почему алерт говорит, что в трёх последний полях буквы в массивах 1?
Добавлено через 10 минут и 35 секунд Я всё-таки не поняла почему -1? Почему алерт ввыводит запятую, когда мы не давали такой команды? --------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
А если слова в алерте написать ещё надо? Так: return "ok" resultArr; у меня не работает. Как правильно?
--------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
| Amphiluke |
|
||||||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Значит, так оно и есть. Все массивы содержат «cимвол» "" (пустой). Но если нужно избежать этого эффекта, то придется предусмотреть этот случай явно.
Определитесь, что конкретно вы хотите видеть на выходе. Если строку, то измените так:
P.S. Я использую alert лишь для примера, вы можете выводить результат на страницу (только не через document.write). А массив возвращается лишь только потому, что вы говорили о необходимости дальнейшей работы с этими числами. Это сообщение отредактировал(а) Amphiluke - 17.11.2009, 17:14 |
||||||||
|
|||||||||
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
Хм... большое спасибо!
Раньше я поле1 + поле2, а сейчас что-то не соображу. а тут наверное больше кода будет, если суммировать сразу все числа... Добавлено через 1 минуту и 57 секунд Нету же sum(__form.elements[i].value) --------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Ну дак написать недолго:
Добавлено через 2 минуты и 52 секунды P.S. А массив, который передается в эту функцию уже получен в функции checkAllFields. |
|||
|
||||
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
Как много кода! Какой файл огромный!
--------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Выведите весь Javascript в отдельный файл. Всё не так страшно будет. =)
|
|||
|
||||
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
Я хочу, чтобы это было в форме.
Добавлено через 1 минуту и 24 секунды Сделала форму и дописала функцию:
Не работает Добавлено через 2 минуты и 40 секунд А без res.value=sum; всё работает. --------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
ещё бы. а что такое res?
|
|||
|
||||
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
id поля куда должен выводиться sum.
Добавлено через 2 минуты и 29 секунд Я вывела результат в див. Получилось! Сделала и заполнила 16 полей нажала на кнопку и "Сценарий, исполняемый на этой странице, возможно занят или не отвечает. Вы можете остановить его сейчас или продолжить и посмотреть сможет ли он завершить свою работу. Сценарий: file:///C:/Documents%20and%20Settings/%D0%9D%D0%B0%D1%82%D0%B0%D0%BB%D0%B8%D1%8F/Desktop/existarr.htm:50" Добавлено через 6 минут и 30 секунд 14 полей только обрабатывает. --------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
vitalina, попробуйте переписать функцию
Возможно, это из-за -1 |
|||
|
||||
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
Получилось!
Добавлено через 4 минуты А как всё-таки сделать чтобы в поле выводилось? --------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
| vitalina |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
У меня почему-то не получается делать это с двумя разными классами.
и
Дописала цифру 2. Там где поменяла - не работает! Это сообщение отредактировал(а) vitalina - 17.11.2009, 19:28 --------------------
kornienko.ru - мой настоящий проект. |
||||
|
|||||
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
Так как же сделать? --------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
| Amphiluke |
|
||||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
На то и расчет, чтобы перебирать не все элементы формы (среди них есть и кнопки, и прочий «хлам»), а только поля, куда пользователь заносит буквы. Чтобы отличать эти поля от других элементов, им присвоили класс class="inputField". Но если вам необходимо использовать несколько классов, то при переборе проверяйте атрибут className так:
Для сокращения кода, можете потльзоваться ключевым словом with. Назначить полю, в которое будете выводить, идентификатор id (например, id="resultField"), а потом присваивайте нужное значение атрибуту value этого поля:
Это сообщение отредактировал(а) Amphiluke - 17.11.2009, 20:31 |
||||||
|
|||||||
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
Понятно!
Добавлено через 3 минуты и 44 секунды
Поподробнее можно? Это сообщение отредактировал(а) vitalina - 17.11.2009, 21:34 --------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
У меня работает только первое условие, а второе, какое бы оно ни было не работает! --------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
мдя. а вы можете просто вглядеться в код и попытаться подумать. Amphiluke писал идею, он не проверял то что вам отдавал, не его прерогатива. ну ошибся, бывает. потестил бы - переписал. можете, сами? он ведь не волшебной палочкой машет
|
|||
|
||||
| vitalina |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.11.2007 Где: Riga Репутация: -1 Всего: -4 |
Со всем справилась.
--------------------
kornienko.ru - мой настоящий проект. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |