Модераторы: 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   Вверх
Aliance
Дата 19.3.2005, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


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

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



Цитата
Может виноват setTimeout, но Aliance сказал, что без него IE глючит.

Без нее не будет работать, т.к. IE спешит и пытается выполнить работу с объектом до его создания... Тоже самое и с динамическими окнами...

Это сообщение отредактировал(а) Aliance - 19.3.2005, 18:01
PM MAIL WWW ICQ Skype   Вверх
Иль
Дата 19.3.2005, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вообще физически мышью на disabled-поле фокус никак не поставишь, видать только JS умеет (не удаляя disabled). Может прислушаться к тому, что сказал/написал IE, а из его песни слов не выкинешь. Скрипт у меня простенький, вероятность ошибки равна... Ну ладно, не будем про это smile.
Кстати, трабла возникала только когда перед фильтрацией не стоял alert(), те когда заменю все alert() перед фильтрацией на невидимые слои может придется использовать функцию без фокуса.

Меня сейчас как-то больше куки интересуют.

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


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


Бегун
****


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

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



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


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


 




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


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

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