информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеГде водятся OGRыВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Блокировка российских аккаунтов... 
 Отзыв сертификатов ЦБ РФ, ПСБ,... 
 Памятка мирным людям во время информационной... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / web building
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Помогите, плз, чайнику! Уже крышка подпрыгивает! 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
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2022 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach