Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
JavaScript + HTML DOM не пробовали? ;-) 04.04.05 18:03 Число просмотров: 2891
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
<web building>
|
Помогите, плз, чайнику! Уже крышка подпрыгивает! 04.04.05 16:52
Автор: Fighter <Vladimir> Статус: Elderman
|
Дано: форма с невыбранными радиокнопками (5 шт.).
Надо: если юзверь ничего не выбрал вывалить ему алерт и ничего на сервер не отправлять. Как можно проверить невыбранность радиокнопок?
|
|
JavaScript + HTML DOM не пробовали? ;-) 04.04.05 18:03
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
| |
[upd] А вообще-то не получится 04.04.05 18:51
Автор: Heller <Heller> Статус: Elderman Отредактировано 04.04.05 22:51 Количество правок: 1
|
Попробовал написать экземпл на javascript под эксплорером и вот что вышло: радиокнопка не отмечена, но тем не менее при проверке её значения javascript'ом, получается, что, несмотря на это, в ней всё равно лежит дефолтное значение. Я писал так:
<script language=javascript>
function subform() {
if (document.f1.r1.value=="v1") {
alert("Hello!");
} else {
document.f1.submit();
}
}
</script>
<form method="GET" name=f1 action="#">
<input type="radio" value="v1" name="r1">
<input type="button" value="Submit" onclick="javascript:subform()">
</form>
---
Принажатии на submit у меня выскакивает alert. Как вариант борьбы с означенной проблемой могу предложить устанавливать дефолты (атрибут checked).
Что бы была уверенность, что юзер всё же увидел радиокнопку и нажал, а не оставил значение по дефолту, даже не читая, сделай по дефолту скрытую радиокнопку, которую технически нельзя выбрать (displayed:none) и аналогичным скриптом как я написал выше проверяй, выбрана ли она или что-то другое.
---------------
[upd] Cлегка напутал с кодом. Просто исправил ошибку (забыл про onclick). Смысл от этого не поменялся :-)
|
| | |
Вот как раз с дефолтным значением у меня проблема: как его... 05.04.05 09:42
Автор: Fighter <Vladimir> Статус: Elderman
|
> Попробовал написать экземпл на javascript под эксплорером и > вот что вышло: радиокнопка не отмечена, но тем не менее при > проверке её значения javascript'ом, получается, что, > несмотря на это, в ней всё равно лежит дефолтное значение. Вот как раз с дефолтным значением у меня проблема: как его узнать/назначить?
> Я писал так: > > <script language=javascript>
> function subform() {
> if (document.f1.r1.value=="v1") {
> alert("Hello!");
> } else {
> document.f1.submit();
> }
> }
> </script>
>
> <form method="GET" name=f1 action="#">
> <input type="radio" value="v1" name="r1">
> <input type="button" value="Submit"
> onclick="javascript:subform()">
> </form>
> ---
У меня почти также, только не get а post (не существенно я так понимаю) не onclick, a onsubmit="return subform(f1);" щоб, значить, не отправлял че не надо.
> Принажатии на submit у меня выскакивает alert. Как вариант > борьбы с означенной проблемой могу предложить устанавливать > дефолты (атрибут checked). checked нельзя, т.к. отдельные несознательные юзвери отправляют форму не выбрав ничего (используя дефолт),
> Что бы была уверенность, что юзер всё же увидел радиокнопку > и нажал, а не оставил значение по дефолту, даже не читая, > сделай по дефолту скрытую радиокнопку, которую технически > нельзя выбрать (displayed:none) и аналогичным скриптом как А куда писать displayed:none? <input type="radio" value="v1" name="r1" displayed:none>, так?
> я написал выше проверяй, выбрана ли она или что-то другое. > --------------- > [upd] Cлегка напутал с кодом. Просто исправил ошибку (забыл > про onclick). Смысл от этого не поменялся :-)
|
| | | |
Почти 05.04.05 13:30
Автор: Heller <Heller> Статус: Elderman
|
display прописывается так:
<input type=radio name=... value=,,, style="display:none">
|
| | | | |
Не работает :(( 05.04.05 15:21
Автор: Fighter <Vladimir> Статус: Elderman
|
<script language=javascript>
function subform() {
if (document.f1.r1.value=="v3") {
alert("Hello!");
} else {
document.f1.submit();
}
}
</script>
<form method="GET" name=f1 action="#">
<input type="radio" value="v1" name="r1">
<input type="radio" value="v2" name="r1">
<input type="radio" value="v3" name="r1" checked style="display:none">
<input type="button" value="Submit" onclick="javascript:subform()">
</form>
При любом варианте выбора (дефолт или руками) - alert не вываливается :((
|
| | | | | |
Re 05.04.05 21:43
Автор: Heller <Heller> Статус: Elderman
|
В общем понял я в чём ошибка. Почитал документацию - оказывается, для радиокнопок не существует понятия value. Вместо этого для них заводится массив. То бишь в нашем случае массивом является document.f1.r1. И проверку надо делать примерно так: document.f1.r1[2].checked==false.
Ну и плюс исходя из этого можно обойтись без скрытой кнопки - проверять значения просто в цикле.
А пока копал информацию по радиокнопкам, ещё одно решение пришло:
<script language="javascript">
t=0;
function subform() {
if (t=0) {alert();} else {document.f1.submit();}
}
А на каждую радиокнопку установить onclick="javascript:t=1" если радиокнопок не много и страница скриптами не перегружена, то это самое лучшее, имхо.
|
| | | | | | |
Пасиба, щас попробую :) 06.04.05 09:33
Автор: Fighter <Vladimir> Статус: Elderman
|
|
|
|