[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обработчик событий для всей коллекции формы.
panacea
Привет, ребят. Помогите пожалуйста.
На сайте есть формочка с множеством checkboxes
Я решил сделать обработчик ошибок на js. Если не выбрано не одной птички выдавать alert('Ну ты и крендель!..Хотя б одну галочку поставь сначала, а затем тыкай на кнопки'); на событие onsubmit.
Птичек много и обрабатывать по отдельности сложно. Мне надо обработку коллекции сразу. если ни одна не выделена - ошибка. Спасибо.



Спустя 2 минуты, 12 секунд (4.08.2011 - 10:08) redreem написал(а):
формочку-то бы хоть показали. вариантом может быть несколько.

Спустя 15 минут, 15 секунд (4.08.2011 - 10:23) panacea написал(а):
Не вопрос, вот http://www.aqula.ru/analysis/msfo/

Спустя 15 минут, 45 секунд (4.08.2011 - 10:39) redreem написал(а):
это именно ваш случай или пример? спрашиваю потому что вижу функцию function check_uncheck(a, b, c)...

Спустя 7 минут, 42 секунды (4.08.2011 - 10:47) panacea написал(а):
Да именно мой случай. Для этого и надо обработчик сделать. Как видете сейчас просто работает редирект. Но для публики он не понятен. Поэтому надо сделать обработку этого события.
Это функция выделяет группу птичек. Она здесь не причем. наверное надо типа что-то такого
<form onsubmit=\"if(document.entryform.title.value == '' || document.entryform.short_story.value == '' || document.entryform.category.value == '' || document.entryform.category.value == 0 || document.entryform.tags.value == ''){alert('$lang[add_err_7]');return false}\" action=\"\">";

Только надо не перечислять все элементы формы, а обобщить как- то. Возможно я заблуждаюсь.

Спустя 9 минут, 21 секунда (4.08.2011 - 10:56) Michael написал(а):
if (!$("input[name^='gp']:checked").length) {
// не отмечено ни одной галочки
// ...

}

Спустя 9 минут, 11 секунд (4.08.2011 - 11:05) redreem написал(а):
	function checkNoCheck(id) {
var inps=document.getElementById(id).getElementsByTagName('input');
var check=false;
for (var i=0;i<inps.length;i++) if (inps[i].checked) {check=true;break;}
return check;
}


функции передать id контейнера для инпутов. в вашем случае надо добавить например так:
<table id="tableCheck" width="100%" border="0" cellspacing="0" cellpadding="0">

Спустя 9 минут, 13 секунд (4.08.2011 - 11:14) Michael написал(а):
на страницу передан 91,5 Килобайт с библиотекой jquery и обязательно надо это не использовать, а писать на чистом js. laugh.gif

Спустя 15 минут, 42 секунды (4.08.2011 - 11:30) panacea написал(а):
Спасибо большое. Да с jq даже как-то элегантнее смотрится.

Спустя 52 минуты, 37 секунд (4.08.2011 - 12:23) redreem написал(а):
Michael, да можно конечно. просто по-первых - чистый js допускает дополнительные манипуляции внутри проверки. малоли что, например можно считать по ходу количество этих чекедов, во-вторых - я привел пример для частного случая, проанализировав на скорую руку всего один контейнер. этот код будет работать для любой формы контейнера, при доступе только по айдишнику контейнера. в третьих - почему все стремятся влепить жквери во все щели, когда и ручками все пишется просто и понятно? Задачи использовать именно жквери не стояло. Не будем рассуждать даже о выйгрыше в производительности - просто мания жквери в некоторых случаях не уместна.

Спустя 3 часа, 16 минут, 24 секунды (4.08.2011 - 15:39) panacea написал(а):
Я столкнулся с тем, что не могу подключить функцию
function somecheck(){
if (!$("input[name='chkboxs[]']:checked").length) {
alert ("Для продолжения работы необходимо выбрать хотя бы один показатель");
return false;
}
return true;
}

к

<form onsubmit="return somecheck();"

redreem, вы счетаете что здесь лучше прямой js использовать а не jq

Спустя 21 минута, 6 секунд (4.08.2011 - 16:00) Michael написал(а):
Ты посмотри какой у тебя html
...
<form onsubmit="return somecheck();" action="/msfo/" method="post" name="coef">
<b>
Стандарт:</b> <select name="sel_std" onchange="javascript:goToStd(this.form);">
<option
value="1" SELECTED>МСФО
<option value="0">РСБУ
</select></td>
</tr></table></td>
</tr>
</table>

...

это нормально? Где закрывается форма?

alert($("input[name='chkboxs[]']").eq(0).closest('form').length)

вернет 0, т.е. input-ы не находятся внутри формы ...

Спустя 22 минуты, 56 секунд (4.08.2011 - 16:23) redreem написал(а):
panacea, я считаю что нет смысла пихать жквери во все щели если есть более приемлемый метод. но, как говорится, - каждому свое.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.