Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

checkbox value

86K
15 июня 2015 года
dpts
4 / / 12.05.2015
Здравствуйте, есть форма:
 
Код:
<form name="zakaz">
    <input name="detail" type="checkbox" checked value="1">
    <input name="detail" type="checkbox" checked value="2">
    <input name="detail" type="checkbox" checked value="3">
    <input name="detail" type="checkbox" checked value="4">
</form>
Нужно привязать скрипт, который проверял бы состояние чекбоксов, И если какой-то выключается, то его value выставлял равным 0, а если обратно включается, - то выставлял value в указанное.
563
15 июня 2015 года
MrLinker
249 / / 17.09.2006
Не буду пытать подробности задумки, но так должно сработать:
Код:
<!doctype html>

<html lang="ru">
<head>
  <meta charset="cp1251">
  <title>Чекматьегобокс</title>
  <script src="http://yastatic.net/jquery/2.1.3/jquery.js"></script>
  <script>
    $(function() {
        $('input[name=detail]').change(function() {
                $(this).val($(this).is(":checked") ? 1 : 0);
        });
    });
  </script>
</head>

<body>
    <form name="zakaz">
        <input name="detail" type="checkbox" checked value="1">
        <input name="detail" type="checkbox" checked value="2">
        <input name="detail" type="checkbox" checked value="3">
        <input name="detail" type="checkbox" checked value="4">
    </form>
</body>
</html>
86K
15 июня 2015 года
dpts
4 / / 12.05.2015
Цитата: MrLinker
Не буду пытать подробности задумки, но так должно сработать:

Ну видимо без подробностей все же не обойтись.
Итак. Есть форма, в которой пользователь указывает состав изделия, материалы деталей, и если какая-то деталь может быть заменена другой, - то вариант исполнения детали, условно форма выглядит так:

Код:
<form name="zakaz">Жилет меховой:
    <input name="isdel" type="text" size="4" value="3"> шт.
    <table>
        <tr>
            <td>Рукав левый
                <div style="float: right;width: 20px;">
                    <input name="detail" type="checkbox" checked value="1">
                </div>
                <input type="hidden" name="detailmod" value="0">
            </td>
            <td>
                <select name="material">
                    <option value="1">Кожа</option>
                    <option value="2">Мех</option>
                    <option value="3">Ткань</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>Рукав правый
                <div style="float: right;width: 20px;">
                    <input name="detail" type="checkbox" checked value="2">
                </div>
                <input type="hidden" name="detailmod" value="0">
            </td>
            <td>
                <select name="material">
                    <option value="1">Кожа</option>
                    <option value="2">Мех</option>
                    <option value="3">Ткань</option>
                </select>
            </td>
        </tr>
        <tr>
            <td> <b>Застежка молния</b>

                <div style="float: right;width: 20px;">
                    <input name="detailmod" type="radio" checked value="4">
                </div>
                <div style="float: right;width: 20px;">
                    <input name="detail" type="checkbox" checked value="3">
                </div>
                <table>
                    <tr>
                        <td>Пуговицы
                            <div style="float: right;width: 20px;">
                                <input name="detailmod" type="radio" checked value="5">
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td>Кнопки
                            <div style="float: right;width: 20px;">
                                <input name="detailmod" type="radio" checked value="6">
                            </div>
                        </td>
                    </tr>
                </table>
            </td>
            <td>
                <select name="material">
                    <option value="1">Пластик</option>
                    <option value="2">Металл</option>
                    <option value="3">Дерево</option>
                </select>
            </td>
        </tr>
    </table>
    <br>
    <center>
        <input type="submit" value="Далее">
    </center>
</form>
Если все три чекбокса включены то серверу передаются три тройки значений "detail | detailmod | material", которые можно простым циклом записать в массив и дальше обрабатывать.
Если допустим первый чекбокс отключен, - то серверу передастся:
1. пара "detailmod | material" - от первого чекбокса
2. две тройки значений значений "detail | detailmod | material" - от второго и третьего чекбокса
То есть записать эти данные в массив простым циклом без смещений не получится - нарушится соответствие модификаций и материала детали.
Так уж случилось, что если чекбокс выключен, то он вообще не передается серверу.

Нужен скрипт, который будет проверять включен чекбокс или выключен если он выключен (а значит серверу не передается), то не передавать соответствующие ему detailmod и material обработчику.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог