Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка checkboxов, Хотя бы один выбран? 
:(
    Опции темы
*eug*
  Дата 1.2.2004, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 17.7.2003

Репутация: нет
Всего: нет



Как проверить выбран ли хотя бы один checkbox в форме и соответсвенно отпралять её затем или нет?
PM MAIL   Вверх
Sardar
Дата 2.2.2004, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Пробегаемся по форме, проверяем свойство checked:
Код

<script language="Javascript" type="text/javascript">
<!--
function check(obj) {
for( i=0; i<obj.elements.length; i++)
 if(obj.elements[i].type=="checkbox"&&obj.elements[i].checked) return true;
return false;
}
//-->
</script>
</head>
...
<form onSubmit="return check(this)">
<input type="checkbox">
<input type="checkbox"><br>
<input type="submit" value="Send">
</form>



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
*eug*
Дата 2.2.2004, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 17.7.2003

Репутация: нет
Всего: нет



Спасибочки!
PM MAIL   Вверх
Иль
Дата 6.3.2005, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



Я тут влез, а зря - стираю

Это сообщение отредактировал(а) Иль - 19.3.2005, 10:54


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Aliance
Дата 6.3.2005, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Иль, Sardar ошибки не сделал =)
Сокращеный синтаксис допускает данное опускание smile
Вообще скобки нужны для того, чтобы не только первая строчка, но и посл. входили в операторы, а раз тут 1 - то они лишние smile


Добавлено @ 16:09

Полезно: http://forum.vingrad.ru/index.php?showtopic=36336
PM MAIL WWW ICQ Skype   Вверх
Иль
Дата 14.3.2005, 02:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



Да, зря лез, наверно ошибся, раз у меня не работало тогда. Подчистил здесь и спасибо за объяснение.
36336 читал smile , спасибо, не помогло smile(шутка юмора).

Не подскажите, (в поиске не найду). Как отсылать только непустые поля и отмеченные чекбатоны. Или, хотябы, не отсылать пыстые чекбатоны. Т.е. как-то блокировать отсыл пустых полей. Уж очень эта функция на подобные мысли наводит.

Это сообщение отредактировал(а) Иль - 14.3.2005, 02:42


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
batigoal
Дата 14.3.2005, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



не знаю, как это делается по-человечески smile , но у меня, например, перед отправкой некоторые элементы делаются disabled. Тогда они не включаются в отсылаемый запрос.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Sardar
Дата 14.3.2005, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Иль это задача браузера smile Не отселектированные ческбоксы он не отсылает. Тоже самое для всех других элементов форм.

Если это не так, то открой новый топик и запости код, который так странно воздесйтвует на браузер smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Иль
Дата 15.3.2005, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



Да, странно smile , не задумался. С чекбатонами я ошибся (все путем) smile , а вот пустуе поля text отсылаются.

Посмотрите тогда, пожалуйста, топик в разделе JS для начинающих, назову "Запрет отправки полей", только создам вечером или завтра - сейчас не успею.

Lamer George спасибо, возникла идея проверить поля функцией предложенной Sardar и сделать дисаблю smile . Здорово будет, заодно, отсечь с ненужным значением (напр. по умолчанию).

Это сообщение отредактировал(а) Иль - 15.3.2005, 10:52


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
batigoal
Дата 15.3.2005, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Цитата
Здорово будет, заодно, отсечь с ненужным значением

У меня, собственно, так и есть.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Иль
Дата 15.3.2005, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



Цитата
Тоже самое для всех других элементов форм
Моя беда, что отсылаются имена. Неотмеченные чекбоксы ведут себя, при отправке форм, как будто их не существует на странице, а вот пустые поля "text" передадут имя обязательно и браузер их не отселектирует (Имя1=&Имя2=&Имя3=...). Хотелось привить при помощи JS полям "text" такое поведение чекбоксов. Все, пошел писать новый топик. Приходите...


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Sardar
Дата 16.3.2005, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Вот простейший фильтр:
Код
<script language="Javascript" type="text/javascript">
<!--
function filter(frm) {
  for(var i=0; i<frm.elements.length; i++) {
    if(/^\s*$/.test(frm.elements[i].value)||frm.elements[i].value==frm.elements[i].getAttribute("defvalue")) frm.elements[i].disabled=true;
  }
}
//-->
</script>

<form method="get" onsubmit="filter(this);" action".">
 <input type="text" name="nm1" value="bla1" defvalue="bla1">
 <input type="text" name="nm2" value="bla2" defvalue="bla2">
 <input type="text" name="nm3" value="bla3" defvalue="bla3"><br>
 <input type="submit" value="Send">
</form>


Удаляем все элементы значение которых пустое либо равно дефолтовому, которе заданно аттрибутом defvalue.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Иль
Дата 17.3.2005, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



Дорогие братья ламеры (в JS), залез сюда и правлю ради вас:
Со свойством defvalue не работает и defValue тоже, а работает:
defaultValue - возвращает содержимое элемента по умолчанию (которое мы изначально задали в HTML к прм)
Не забываем, также, что жизнь удивительна и в ней есть место скрытым полям, которые тоже погибнут из-за defaultValue, поэтому всетаки пользуем
Код
if(/^\s*$/.test(frm.elements[i].value)||frm.elements[i].value=="не нужное для отправки значение") frm.elements[i].disabled=true; ...

А еще лучше оставляем все по старому, читаем немножко про JS и добавляем условие, чтоб не трогались скрытые поля.
===========================================================================================
Спасибо Sardar, правда были ошибки с фокусом при валидации. У меня сначала
Код
function isNeEmptyFocus(elem){var str=elem.value;var re=/.+/;
if(!str.match(re)){setTimeout("focusElement('"+elem.form.name+"', '"+ elem.name+"')",0);return false;}else{return true;}}

function focusElement(formName,elemName){var elem=document.forms[formName].elements[elemName];elem.focus();elem.select();}
потом уже
Код
function filter(frm)
Я конечно заменил на без фокуса
Код
function isNeEmpty(elem){var str=elem.value;var re=/.+/;if(!str.match(re)){return false;}else{return true;}}
Но! извините интересно smile , возможно в теле filter(frm) или до/после ee вызова "снять" фокус (smile). Или лучше будет перевести его на элемент, который всегда будет не disabled? У меня, получается, это только кнопка submit. Можно конечно перекидывать от случая к случаю на выжившие поля.

Это сообщение отредактировал(а) Иль - 22.3.2005, 02:22


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Sardar
Дата 17.3.2005, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Иль не пиши код в одну строчку, читается с неохотой...

Не понял задачи, фильтр срабатывает в момент отправки формы, а где там фокус стоит уже не важно. С моим коннектом форма отправляется за секунду smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Иль
Дата 19.3.2005, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



Лады, не буду больше экономить пространство и подправлю код.

А насчет фокуса скажу следующее: Если пользоваться только isNeEmptyFocus у меня обязательно ругается насчет того, что мол: "Чего ты парень, ставишь фокус на объект, который впал в полную дисаблю или не поддерживает установку на себя фокуса, а может, даже, его вообще не существует, но точно сказать не могу" - так он мне и сказал, этот ковбой IE из США, но морда у него была какая-то не американская smile и говорил по русски smile .

Я конечно в полном трансе, ведь у меня установка фокуса идет до предложенной тобой фильтрации. Может виноват setTimeout, но Aliance сказал, что без него IE глючит.
А вообще, проблема решена, можно и забыть. Просто интересно. Всего наилучшего.

Это сообщение отредактировал(а) Иль - 19.3.2005, 10:51


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0593 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.