trojan
trojan

Reputation: 1535

How to check 2 checkboxes that have the same name

So I have a ajax search form which gives results with a checkbox: Here is part of PHP code for each search result:

<input type="checkbox" class="lovkrav_checkbox checkbox_search" name="lovkrav['.$lovkrav_id.']" value="'.$lovkrav_id.'" orig-id="lovkrav'.$lovkrav_id.'" id="lovkravs'.$lovkrav_id.'" '.$checked.'/>

and there is a twin checkbox already on website with the same name but with different id. By using "orig-id" property I am getting the id of the twin checkbox. Both checkboxes have same class lovkrav_checkbox.

I came to the point where the click event is detected by the twin checkbox as it should but not the checkbox you clicked on! Here is the code:

 $(document).on("click",".lovkrav_checkbox",function(e){
    toggle_id = document.getElementById($(this).attr("orig-id"));        
    $(toggle_id).trigger("click");
});

What I want to achieve is when a user clicks on one checkbox - the twin checkbox (the one with same name property) will be checked/unchecked as well.

What am I doing wrong?

Upvotes: 2

Views: 5182

Answers (4)

Alex Char
Alex Char

Reputation: 33218

Try this too:

js:

 $(document).on("click",".lovkrav_checkbox",function(e){
    toggle_id = $(this).attr("name");
     isChecked = $(this).prop("checked");
     $("input:checkbox").each(
         function(){

             if($(this).attr("name") == toggle_id && isChecked){
                 $(this).prop("checked",true);
             }
             else{
                 $(this).prop("checked",false);
             }
         });
});

fiddle

Upvotes: 1

Unknownman
Unknownman

Reputation: 483

Try this

$("input[type=checkbox][name=test]").prop("checked",true);

Upvotes: 0

webkit
webkit

Reputation: 3369

You can try this:

DEMO

 $(document).on("click",".check",function(e){
    $("."+this.className).prop("checked", this.checked);
 });

Upvotes: 2

bottens
bottens

Reputation: 3892

Would be easier to toggle the checked state with vanilla javascript.

HTML

<input type="checkbox" name="test">
<input type="checkbox" name="test">

JS

//All of the checkboxes
var $checkboxes = $("input[type=checkbox][name=test]");

//The event handler
$checkboxes.on("click", function() {
    //Get the state of the check box you clicked
    var checkedState = this.checked

    //Make it the state of all the checkboxes
    $checkboxes.each(function() {
        this.checked = checkedState;
    });
});

Here is the fiddle

Upvotes: 7

Related Questions