公式アカウントからの投稿が始まります

複数のチェックボックスでどこにもチェックがはいっていない場合にエラーを流すJAVASCRIPTのやり方を教えてください。

A 回答 (3件)

<!DOCTYPE html>


<html lang="ja">
<head>
<meta charset="UTF-8" />
<script>
function validate() {
var checkedItemElements = document.querySelectorAll('.item:checked');
if (checkedItemElements.length == 0) {
alert('1つもチェックされていない');
}
}
</script>
</head>
<body>
<input type="checkbox" class="item" value="1">
<input type="checkbox" class="item" value="2">
<input type="checkbox" class="item" value="3">
<input type="checkbox" class="item" value="4">
<button onclick="validate()">Validate</button>
</body>
</html>
    • good
    • 0

toggleAttributeした方がみやすいかも



<form>
<input type="text" name="hoge" value="123">
<input type="checkbox" name="a[]" value="1">
<input type="checkbox" name="a[]" value="2">
<input type="checkbox" name="a[]" value="3">
<input type="checkbox" name="a[]" value="4">
<input type="submit" value="send">
</form>
<script>
const toggleRequired=()=>{
const flg=document.querySelectorAll('[type=checkbox]:checked').length==0;
document.querySelectorAll('[type=checkbox]').forEach(x=>x.toggleAttribute("required",flg));
}
toggleRequired();
document.addEventListener('change',toggleRequired);
document.querySelector('[type=checkbox]:required').addEventListener('invalid',()=>alert('err'));
</script>
    • good
    • 0

<form>


<input type="text" name="hoge" value="123">
<input type="checkbox" name="a[]" value="1">
<input type="checkbox" name="a[]" value="2">
<input type="checkbox" name="a[]" value="3">
<input type="checkbox" name="a[]" value="4">
<input type="submit" value="send">
</form>
<script>
const toggleRequired=()=>{
if(document.querySelectorAll('[type=checkbox]:checked').length==0){
document.querySelectorAll('[type=checkbox]').forEach(x=>x.setAttribute("required",""));
}else{
document.querySelectorAll('[type=checkbox]').forEach(x=>x.removeAttribute("required"));
}
}
toggleRequired();
document.addEventListener('change',toggleRequired);
document.querySelector('[type=checkbox]:required').addEventListener('invalid',()=>alert('err'));
</script>
    • good
    • 1
この回答へのお礼

助かりました

ありがとうございます^_^

お礼日時:2022/01/26 12:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!