Вопрос № 27437: Есть такая форма -
<form action="index.php" method="POST" name="myForm">
<input type="checkbox" name="goodsIDS[]" value="1">
<input type="checkbox"...
Как можно проверить - установлены ли checkbox и если ни один не установлен, то по нажатию button просто вывести сообщение alert("Error") и не переходить на скрипт index.php?
Отправлен: 08.10.2005, 21:54
Вопрос задал: Edson (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ерёмин Андрей
Здравствуйте, Edson!
В JS я не силён, только учусь, но примерно так:
if (goodsIDS[].checked = false) { alert("Error"); return false; } Точно знаю, что return false не позволит передачу параметров скрипту и не будет загружать его, т.е. проигнорирует нажатие на кнопку.
--------- Windows 95, 98 - это количество глюков в процентах!
Ответ отправил: Ерёмин Андрей (статус: Практикант)
Отправлен: 08.10.2005, 22:11
Отвечает: Denis Hakimov
Здравствуйте, Edson!
Как я понял, вам нужно проверить данные до отправки их скрипту, это можно сделать описав функцию, которая выполняется при нажатии на кнопку <submit>.
Код я привел в приложении, хотя не так красиво все оформлено как хотелось, но зато работает и времени потребовалось мало. По сути мы просто проверяем значение свойства "checked" у объекта checkbox. Если оно равно true - то отправляем инфу скрипту, если нет - просто убираем адрес скрипта (свойство "action" у формы), и браузер не знает куда отсылать данные :).
Надеюсь помог.
Приложение:
Ответ отправил: Denis Hakimov (статус: 3-ий класс)
Отправлен: 08.10.2005, 22:49 Оценка за ответ: 3 Комментарий оценки: Не помог. У меня массив. Как в массиве checkbox проверить?
>
function invalidCompare() {
var errors=0;
for (i=0;i<document.all.length;i++) {
if (document.all(i).name=="goodsIDS[]" && !document.all(i).checked)
{
errors=1;
}
}
if (errors) {
alert("Error")
errors=0;
return false
}
else {
return true
}
}
</script>
--------- Vse ili nicevo (Iziki programirovanie)
Ответ отправил: spider (статус: 2-ой класс)
Отправлен: 09.10.2005, 00:45
Отвечает: Romodos
Здравствуйте, Edson!
Во-первых, нельзя называть разные чекбоксы одним именем.
Так можно делать только с радиокнопками
Предлагаю такой вариант (см.приложение)
Работает стопудово
Приложение:
--------- FAQ me off!
Ответ отправил: Romodos (статус: 9-ый класс)
Отправлен: 09.10.2005, 14:39