How to make sure that at least one checkbox is selected?

I use checkboxes whose values ​​come from the database. His name is the same, but the name is chosen like this:

<input type="checkbox" id="chkBankServices" name="<%=bs.getServiceID()%>">
<%=bs.getServiceDesc()%>

through this i get the values ​​from the database. Now I need to check that I need to select at least one checkbox.

If anyone can help me, I will be grateful to you. If I give this javascript code here:

var services = document.getElementsById( 'chkBankServices' );
if(!(services[0].checked) && 
   !(services[1].checked) && 
   !(services[2].checked) && 
   !(services[3].checked) && 
   !(services[4].checked) && 
   !(services[5].checked) && 
   !(services[6].checked) &&
   !(services[7].checked) && 
   !(services[8].checked))
{ 
    alert( "Please select at least one service to submit." );
    return false;
}

It does not give any warning messages. There is something wrong with that. Plz help me ... thanks in advance

+3
source share
6 answers

in jQuery:

   alert(  $("#chkBankServices input[type=checkbox]:checked").length > 0 );
+8
source

Try the following:

var services = document.getElementById( 'chkBankServices' );
var checkboxes = services.getElementsByTagName('input');
var checked = false;
for (var i=0,i0=checkboxes.length;i<i0;i++)
if (checkboxes[i].type.toLowerCase()=="checkbox")
{
    if (checkboxes[i].checked) checked = true;
}

and then:

if (!checked)
{
    alert('Not checked');
    return false;
}
+5
source

getElementsById, id. , getElementsByName? .

, , HTML, .

+4

, , ?

0

, , , if :

var checked = false;
for(var i=0;i<services.length;i++){
  if(services[i].checked){
    checked = true;
  }
}
if(!checked){
    alert( "Please select at least one service to submit." );
    return false;
}
0

, , - , html. div/span - id, :

 if (!isSomethingChecked()) {
    alert( "Please select at least one service to submit." );
    return false;
 }

  function isSomethingChecked() {
    var parent = document.getElementById("chkBankServices");
    for (var child in parent.childNodes) {
        var node = parent.childNodes[child];
        if (node && node.tagName === "INPUT" && node.checked) {
            return true;
        }
    }
    return false;
 }

, HTML :

<div id="chkBankServices">
    <input type="checkbox" id="Checkbox1" />
    <input type="checkbox" id="Checkbox2" checked="checked"/>
    <input type="checkbox" id="Checkbox3" checked="checked"/>
    <input type="checkbox" id="Checkbox4" />
    <input type="checkbox" id="Checkbox5" />
    <input type="checkbox" id="Checkbox6" />
    <input type="checkbox" id="Checkbox7" />
</div>
0

Source: https://habr.com/ru/post/1707925/


All Articles