![]() |
|
Модераторы: 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 - мой настоящий проект. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |