JQuery Требует Флажка и Переключателя, прежде чем отправят

В случае сфинкса вы можете макетировать сторонние пакеты с помощью: autodoc_mock_imports

11
задан Ciaran Bruen 9 April 2013 в 19:33
поделиться

2 ответа

Для этого вы должны использовать селектор : checked . Хотя ответ JP хорош, я бы, наверное, сделал следующее:

$('#form1').submit(function() {
    if ($('input:checkbox', this).is(':checked') &&
        $('input:radio', this).is(':checked')) {
        // everything's fine...
    } else {
        alert('Please select something!');
        return false;
    }
});

Пара примечаний:

  • Я думаю, что лучше использовать функцию is , которая возвращает логическое значение селектора.
  • ] Вы можете использовать : radio и : checkbox как ярлык для выбора всех радио и флажков в форме. Однако согласно руководству jQuery , использование этих селекторов без указания input перед ними является плохой практикой, поскольку они оцениваются как *: checkbox и ] *: в противном случае radio , которые являются очень медленными селекторами.
  • Передавая this в качестве второго аргумента, мы определяем контекст для поиска и, таким образом, ищем только флажки и радио-входы внутри текущей формы. Без него мы можем получить ложные срабатывания, если на странице окажется другая форма.
22
ответ дан 3 December 2019 в 05:13
поделиться
$('#form1').submit(function(){
    if ($(':checkbox:checked', this)[0] && $(':radio:checked', this)[0]) {
        // everything's fine...
    } else {
        alert('Please select something!');
        return false;
    }
});
1
ответ дан 3 December 2019 в 05:13
поделиться
Другие вопросы по тегам:

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