|
Выпадающий список и форма
|
| Автор |
Сообщение |
SergejFedosov 11 1110 1000


Зарегистрирован: 18.08.2006 Сообщения: 1127
8864 
|
Добавлено: Пт, 24 Сен, 2010 16:10 Заголовок сообщения: Выпадающий список и форма |
|
|
Возможно ли средствами статичного html сделать так, чтобы в зависимости от выбора пункта в выпадающем списке менялось значение action="***" в теге <form>? Если можно, то как? _________________ Кредитная карта для веб-мастера |
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus Призрак Лорда


Зарегистрирован: 26.07.2007 Сообщения: 5092
42282 
|
Добавлено: Пт, 24 Сен, 2010 16:47 Заголовок сообщения: |
|
|
SergejFedosov
Если подразумевается "без применения серверных технологий" (PHP,MySQL,etc.) - то да, если только HTML, без JS - нет. _________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь! |
|
| Вернуться к началу |
|
 |
SergejFedosov 11 1110 1000


Зарегистрирован: 18.08.2006 Сообщения: 1127
8864 
|
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus Призрак Лорда


Зарегистрирован: 26.07.2007 Сообщения: 5092
42282 
|
Добавлено: Пт, 24 Сен, 2010 17:19 Заголовок сообщения: |
|
|
| Код: | | <select onchange="if (this.selectedIndex==X) this.form.action='URL';"> |
Что-то вроде этого. Протестировать времени не было. X - номер элемента в списке, URL - новый адрес. _________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь! |
|
| Вернуться к началу |
|
 |
SergejFedosov 11 1110 1000


Зарегистрирован: 18.08.2006 Сообщения: 1127
8864 
|
Добавлено: Пт, 24 Сен, 2010 17:24 Заголовок сообщения: |
|
|
| [LP]LordPro.teus писал(а): | | Что-то вроде этого. |
А куда его вставлять в этот код?:
| Код: |
<form method="POST" action="XXX">
<select size="1" name="D1">
<option value="A">1</option>
<option value="B">2</option>
</select>
<input type="text" name="T1" size="20" value="1">
<input type="submit" value="Отправить" name="B1">
</form> |
_________________ Кредитная карта для веб-мастера |
|
| Вернуться к началу |
|
 |
SergejFedosov 11 1110 1000


Зарегистрирован: 18.08.2006 Сообщения: 1127
8864 
|
Добавлено: Пт, 24 Сен, 2010 17:52 Заголовок сообщения: |
|
|
Опробовал следующий код:
| Код: |
<form method="POST">
<select onchange="if (this.selectedIndex==A) this.form.action='URL1';" onchange="if (this.selectedIndex==B) this.form.action='URL2';" name="D1">
<option value="A">Россия</option>
<option value="B">Украина</option>
</select><br>
ФИО: <input type="text" name="name" size="40"><br>
Контактный телефон: <input type="text" name="phone" size="21"><br>
<input type="submit" value="Отправить"></form>
</form>
|
К сожалению, не работает. _________________ Кредитная карта для веб-мастера |
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus Призрак Лорда


Зарегистрирован: 26.07.2007 Сообщения: 5092
42282 
|
Добавлено: Пт, 24 Сен, 2010 18:01 Заголовок сообщения: |
|
|
SergejFedosov
Под словом "номер" подразумевается исключительно число. Собственно, номер элемента. Номер option'а. Начиная с 0.
Ps: по умолчанию какой-либо action все равно должен быть задан, стандарт _________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь! |
|
| Вернуться к началу |
|
 |
SergejFedosov 11 1110 1000


Зарегистрирован: 18.08.2006 Сообщения: 1127
8864 
|
Добавлено: Пт, 24 Сен, 2010 19:28 Заголовок сообщения: |
|
|
Сменил код на:
<form method="POST" action="XXX">
<select onchange="if (this.selectedIndex==1) this.form.action='URL1';" onchange="if (this.selectedIndex==2) this.form.action='URL2';" name="D1">
<option value="C">Выберите страну проживания:</option>
<option value="A">Россия</option>
<option value="B">Украина</option>
</select><br>
ФИО: <input type="text" name="name" size="40"><br>
Контактный телефон: <input type="text" name="phone" size="21"><br>
<input type="submit" value="Заказать"></form>
</form>
При выборе России все работает, при выборе Украины URL2 в action не подставляется, остается XXX. Где ошибка? _________________ Кредитная карта для веб-мастера |
|
| Вернуться к началу |
|
 |
SergejFedosov 11 1110 1000


Зарегистрирован: 18.08.2006 Сообщения: 1127
8864 
|
Добавлено: Пт, 24 Сен, 2010 20:03 Заголовок сообщения: |
|
|
Разобрался. Тег select следовало написать в таком виде:
<select onchange="if (this.selectedIndex==1) this.form.action='URL1'; if (this.selectedIndex==2) this.form.action='URL2';" name="D1">
Теперь выбор работает. Спасибо за помощь.
Но я продолжу Вас пытать, господа. Теперь в коде:
<form method="POST" action="XXX">
<select onchange="if (this.selectedIndex==1) this.form.action='URL1'; if (this.selectedIndex==2) this.form.action='URL2';" name="D1">
<option value="C">Выберите страну проживания:</option>
<option value="A">Россия</option>
<option value="B">Украина</option>
</select><br>
ФИО: <input type="text" name="name" size="40"><br>
Контактный телефон: <input type="text" name="phone" size="21"><br>
<input type="submit" value="Заказать"></form>
</form>
необходимо, чтобы при выборе России в тег <input type="text" name="phone" size="21"> подставлялось: value="+7" , а при выборе Украины: value="+380" . Как это сделать? _________________ Кредитная карта для веб-мастера |
|
| Вернуться к началу |
|
 |
corsar8888 Хостинг — это наше всё!


Зарегистрирован: 01.01.2010 Сообщения: 278 Откуда: Новосибирск 12823 
|
|
| Вернуться к началу |
|
 |
SergejFedosov 11 1110 1000


Зарегистрирован: 18.08.2006 Сообщения: 1127
8864 
|
Добавлено: Сб, 25 Сен, 2010 06:00 Заголовок сообщения: |
|
|
Спасибо за совет, Корсар. Мне в соседнем форуме помогли написать код. Ели кого интересует:
| Код: |
<script>
function countryCode(){
if (document.getElementById("selectCountry").selectedIndex == 1) {
document.getElementById("edi").value = "+7";
document.getElementById("myForm").action = "URL1";
}//if
if (document.getElementById("selectCountry").selectedIndex == 2) {
document.getElementById("edi").value = "+380";
document.getElementById("myForm").action = "URL2";
}//if
}//function countryCode
</script>
<form method="POST" action="XXX" id = "myForm">
<select onchange="countryCode()" name="D1" id = "selectCountry">
<option value="C">Выберите страну проживания</option>
<option value="A">Россия</option>
<option value="B">Украина</option>
</select><br>
ФИО: <input type="text" name="name" size="40"><br>
Контактный телефон: <input type="text" id="edi" name="phone" size="21"><br>
<input type="submit" value="Заказать кредитную карту"></form>
</form>
|
_________________ Кредитная карта для веб-мастера |
|
| Вернуться к началу |
|
 |
Gosudar Два пингвина

Зарегистрирован: 08.04.2007 Сообщения: 431
8014 
|
Добавлено: Сб, 25 Сен, 2010 13:37 Заголовок сообщения: |
|
|
corsar8888
извини меня, но только из-за такой мелочи подключать библиотеку jQuery на 50 кб смысла нет. _________________ R3-born |
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus Призрак Лорда


Зарегистрирован: 26.07.2007 Сообщения: 5092
42282 
|
Добавлено: Сб, 25 Сен, 2010 13:46 Заголовок сообщения: |
|
|
Gosudar
Поддерживаю. Из пушки по воробьям. _________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь! |
|
| Вернуться к началу |
|
 |
corsar8888 Хостинг — это наше всё!


Зарегистрирован: 01.01.2010 Сообщения: 278 Откуда: Новосибирск 12823 
|
Добавлено: Вс, 26 Сен, 2010 13:11 Заголовок сообщения: |
|
|
| Gosudar писал(а): | corsar8888
извини меня, но только из-за такой мелочи подключать библиотеку jQuery на 50 кб смысла нет. |
Из-за одной мелочи - смысла нет. А если таких мелочей - пол страницы (что частенько случается), то jQuery значительно упрощает работу.
70 кб - размер последней версии jQuery. Этот размер мизерный, учитывая огромные возможности данной библиотеки и скорости современного интернета.
| [LP]LordPro.teus писал(а): | Gosudar
Поддерживаю. Из пушки по воробьям. |
По стае воробьёв лучше стрелять из пушки, чем из рогатки. А для одного воробьишки и рогатка сойдёт  |
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus Призрак Лорда


Зарегистрирован: 26.07.2007 Сообщения: 5092
42282 
|
Добавлено: Вс, 26 Сен, 2010 16:39 Заголовок сообщения: |
|
|
corsar8888
Чепуха это. Для упрощения подобных указанной выше операций - достаточно кода в не более 2Кб. А не 70Кб. _________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь! |
|
| Вернуться к началу |
|
 |
|