Как проверить форму с несколькими флажками, чтобы иметь по крайней мере один проверенный

Щелкните правой кнопкой по имени класса (в исходном коде) и выберите Refactor-> Convert Member Type to Top Level. Это не позволяет Вам выбрать пакет, все же.

40
задан Martijn 17 December 2015 в 13:00
поделиться

3 ответа

Этот сценарий ниже должен направить вас, возможно, на верный путь?

Вы можете оставить этот html таким же (хотя я изменил метод на POST):

<form method="POST" id="subscribeForm">
    <fieldset id="cbgroup">
        <div><input name="list" id="list0" type="checkbox"  value="newsletter0" >zero</div>
        <div><input name="list" id="list1" type="checkbox"  value="newsletter1" >one</div>
        <div><input name="list" id="list2" type="checkbox"  value="newsletter2" >two</div>
    </fieldset>
    <input name="submit" type="submit"  value="submit">
</form>

и этот javascript проверяет

function onSubmit() 
{ 
    var fields = $("input[name='list']").serializeArray(); 
    if (fields.length === 0) 
    { 
        alert('nothing selected'); 
        // cancel submit
        return false;
    } 
    else 
    { 
        alert(fields.length + " items selected"); 
    }
}

// register event on form, not submit button
$('#subscribeForm').submit(onSubmit)

, и вы можете найти рабочий пример здесь

ОБНОВЛЕНИЕ (октябрь 2012 г.)
Кроме того, следует отметить, что флажки должны иметь свойство «name», иначе они не будут добавлены в массив. Только наличие «id» не будет работать.

ОБНОВЛЕНИЕ (май 2013 г.)
Перемещена регистрация отправки в javascript и зарегистрирована отправка в форме (как и должно было быть изначально)

ОБНОВЛЕНИЕ (июнь 2016 г.)
Изменяет == на ===

30
ответ дан 27 November 2019 в 01:13
поделиться

Как насчет этого:

$(document).ready(function() {
    $('#subscribeForm').submit(function() {
        var $fields = $(this).find('input[name="list"]:checked');
        if (!$fields.length) {
            alert('You must check at least one box!');
            return false; // The form will *not* submit
        }
    });
});
11
ответ дан 27 November 2019 в 01:13
поделиться

Прежде всего, если вы не установите все свойства CSS, доступные сейчас, а также все, которые, возможно, будут доступны в будущем, вы не можете гарантировать, что ваш

будет соответствовать , Стили WRT, с

. (Хотя я согласен, что вы можете приблизиться, и это, вероятно, достаточно, но читайте дальше.) Я не знаю никаких визуальных браузеров или других инструментов, которые серьезно относились бы к ним по-другому, но это такой же артефакт, ИМХО, текущей широко распространенной в сети свободной интерпретации, поскольку они близки по смыслу.

Является ли

    правильным преобразованием для каждого в ваши исходные данные? Если они всегда отображаются как содержимое уровня блока, а не 1) как, 2) встроенный, 3) список; тогда это безопасная ставка. Если так,
52
ответ дан 27 November 2019 в 01:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: