name값이 다 다른 체크박스들이 있습니다.
이중에 1개 이상을 체크하게끔
필수입력 처리를 아래처럼 했는데
안되네요.
뭐가 잘못된걸까요?
Copy
<input type="checkbox" name="wr1[0]" value="치킨" <?php echo ($wr1[0] == "치킨") ? "checked" : "";?>> 치킨
<input type="checkbox" name="wr1[1]" value="피자" <?php echo ($wr1[1] == "피자") ? "checked" : "";?>> 피자
<input type="checkbox" name="wr1[2]" value="족발" <?php echo ($wr1[2] == "족발") ? "checked" : "";?>> 족발
<script>
var flag = false;
$("input[name*=wr1).each( function () {
if (this.checked) {
flag = !flag;
return false;
}
});
if (!flag) {
alert("최소 1개 이상 체크해주세요.");
return false;
}
</script>
|
답변 3개 / 댓글 4개
채택된 답변
+20 포인트
2020-08-08 (토) 12:45:13
$("input[name*=wr1]") 의미가 attribute name = wr1* 이라는 의미 같습니다.
차라리 class="input_food"를 넣고 input에 대한 class로 해 보시는 것이 (jquery는 잘 몰라서 개념으로만)
답변에 대한 댓글 2개
망이망소이
2020-08-08 (토) 15:51:53
망이망소이
2020-08-08 (토) 16:56:51
id=wr1을 모두 주고 아래와 같이 jquery로 해결했습니다.^^
[code]
<script>
if ($("input:checkbox[id='wr1']").is(":checked") == false){
$("input:checkbox[id='wr1']").prop("required", true);
}
$("input:checkbox[id='wr1']").click(function() {
$("input:checkbox[id='wr1']").prop("required", false);
});
</script>
[/code]
[code]
<script>
if ($("input:checkbox[id='wr1']").is(":checked") == false){
$("input:checkbox[id='wr1']").prop("required", true);
}
$("input:checkbox[id='wr1']").click(function() {
$("input:checkbox[id='wr1']").prop("required", false);
});
</script>
[/code]
2020-08-08 (토) 16:47:54
Copy
<div class="checkbox-group required">
<input type="checkbox" name="checkbox_name[]">
<input type="checkbox" name="checkbox_name[]">
<input type="checkbox" name="checkbox_name[]">
<input type="checkbox" name="checkbox_name[]">
</div>
$('div.checkbox-group.required :checkbox:checked').length > 0
답변에 대한 댓글 1개
2020-08-08 (토) 11:28:16
input[name*=wr1 여기서 ]가 안닫혀있네요
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.
[code]
var arr_form = document.getElementsByClassName('wr1');
var num = 0;
for(var i=0; i<arr_form.length; i++){
if(arr_form[i].checked){
num++;
}
}
if(!num){
alert('하나이상 선택해주시기 바랍니다');
location.href='#wr1';
return false;
}
[/code]