html 5中至少需要1个多个复选框

时间:2018-06-21 07:52:59

标签: javascript jquery html

我希望将其作为HTML错误消息而不是警报消息,但我发现解决方案很少,但没有一个能按预期运行

$('form').on('click', '.required_group', function() {
  $('input.required_group').prop('required', $('input.required_group:checked').length === 0);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <input type="checkbox" name="whatever" value="1" required class="required_group" />
  <input type="checkbox" name="whatever" value="2" required class="required_group" />
  <input type="checkbox" name="whatever" value="3" required class="required_group" />
  <input type="checkbox" name="whatever" value="4" required class="required_group" />
  <input type="submit" name="submit" />
</form>

2 个答案:

答案 0 :(得分:1)

这是带有自定义错误消息的方法。

它将查看类为ngAfterViewChecked() { console.trace(); } 的所有内容,并计算检查该对象的每个实例。如果数字为0,则会设置一条自定义消息并触发它,但是,如果有一个或多个,它将​​重置该消息并触发提交。

required_group
function validateGrp() {
  let things = document.querySelectorAll('.required_group')
  let checked = 0;
  for (let thing of things) {
    thing.checked && checked++
  }
  if (checked) {
    things[things.length - 1].setCustomValidity("");
    document.getElementById('checkGroup').submit();
  } else {
    things[things.length - 1].setCustomValidity("You must check at least one checkbox");
    things[things.length - 1].reportValidity();
  }
}

document.querySelector('[name=submit]').addEventListener('click', () => {
  validateGrp()
});

答案 1 :(得分:0)

$filename = iconv("utf-8", "cp936", $filename);
  

希望它会为您服务

相关问题