Дано: форма с невыбранными радиокнопками (5 шт.).
Надо: если юзверь ничего не выбрал вывалить ему алерт и ничего на сервер не отправлять. Как можно проверить невыбранность радиокнопок?
JavaScript + HTML DOM не пробовали? ;-)04.04.05 18:03 Автор: HandleX <Александр М.> Статус: The Elderman
Попробовал написать экземпл на javascript под эксплорером и вот что вышло: радиокнопка не отмечена, но тем не менее при проверке её значения javascript'ом, получается, что, несмотря на это, в ней всё равно лежит дефолтное значение. Я писал так:
---
Принажатии на submit у меня выскакивает alert. Как вариант борьбы с означенной проблемой могу предложить устанавливать дефолты (атрибут checked).
Что бы была уверенность, что юзер всё же увидел радиокнопку и нажал, а не оставил значение по дефолту, даже не читая, сделай по дефолту скрытую радиокнопку, которую технически нельзя выбрать (displayed:none) и аналогичным скриптом как я написал выше проверяй, выбрана ли она или что-то другое.
---------------
[upd] Cлегка напутал с кодом. Просто исправил ошибку (забыл про onclick). Смысл от этого не поменялся :-)
Вот как раз с дефолтным значением у меня проблема: как его...05.04.05 09:42 Автор: Fighter <Vladimir> Статус: Elderman
> Попробовал написать экземпл на javascript под эксплорером и > вот что вышло: радиокнопка не отмечена, но тем не менее при > проверке её значения javascript'ом, получается, что, > несмотря на это, в ней всё равно лежит дефолтное значение. Вот как раз с дефолтным значением у меня проблема: как его узнать/назначить?
> Я писал так: >
---
У меня почти также, только не 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). Смысл от этого не поменялся :-)
В общем понял я в чём ошибка. Почитал документацию - оказывается, для радиокнопок не существует понятия 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" если радиокнопок не много и страница скриптами не перегружена, то это самое лучшее, имхо.