JQuery - is at least one checkbox checked

13,669

Solution 1

A radio button list was not an option due to the page layout. I solved it with a Custom Validator.

Add this JavaScript function to the page

function ValidateDDA(s, a) {
    a.IsValid = ($(".chk:checked", $('parentDiv')).length > 0);
}

Then add a CustomValidator to the page

<asp:CustomValidator runat="server" ID="cvDDLCorrect" ClientValidationFunction="ValidateDDA"
ErrorMessage="No hay resuesta correcta" CssClass="error" />

Works like a charm. Thanks for suggestions.

Solution 2

To check if at least one is checked:

 $(".classname:checked", container).length > 0

"container" is the (optional) container element.

If you want to avoid using class names for grouping, you should simply give each checkbox the same name:

<input type="checkbox" name="group1" value="1" />
<input type="checkbox" name="group1" value="2" />
<input type="checkbox" name="group1" value="3" />

Then you can change the test code to:

 $("[name=group1]:checked").length > 0
Share:
13,669

Related videos on Youtube

Laramie
Author by

Laramie

Updated on April 23, 2022

Comments

  • Laramie
    Laramie about 2 years

    I am in the process of learning JQuery thanks mostly to the positive reference here on Stack Overflow. I need a function that checks all the checkboxes in an element which have the same CSS class. It should returns true if at least one of them is checked. There are also other boxes in the element that are irrelevant to the check.

    The CSS class is unnecessary and only in place to create a way to identify the checkboxes in the group. It feels like bad practice, so any recommendations about other ways to identify them are welcome.

  • Laramie
    Laramie almost 14 years
    Good to know. Unfortunately the checkboxes are via ASP.Net and overriding UniqueID is too much solution.
  • Tgr
    Tgr almost 14 years
    What is the point for using the same name for multiple checkboxes? (Unless you use PHP and end the name with []) If the user can select only one of them, a radio button should be used. If he can select multiple ones, you would lose information that way.
  • Philippe Leybaert
    Philippe Leybaert almost 14 years
    You don't lose information when multiple checkboxes have the same name. The data will be posted to the server as "value1,value2,value3" if multiple items are checked