5

I can't get the checked values of the dynamic check box. What am I doing wrong? http://jsfiddle.net/hxfsB/17/

Markup:

<html>
    <body>
      one<input type="checkbox" name='checkbox0' value="one_name" checked>
     two<input type="checkbox" name='checkbox1' value="one_name1">
     three<input type="checkbox" name='checkbox2' value="one_name2">
         <input type="button" id="envoyer" value="Envoyer Reponse"  /> 
    </body>
</html>

Javascript:

$('#envoyer').click(function(e){
    var myArray=new Array(4);
    for ( var j = 0; j < 3; j++){ 
        var check=$('input:checkbox[name=checkbox'+j+']').is(':checked');
        if(check==true)
            myArray[j]=$('input:checkbox[name=checkbox'+j+']').val();
    }
    alert('check '+" "+myArray[i]);
});
1
  • Look at your browser's JavaScript console in the developer tools. Commented Jun 1, 2012 at 20:25

6 Answers 6

5

You have an error when outputting myArray in alert (there is no i variable defined).

However, your code can be better structured. Here is one solution:

$("#envoyer").click(function(e) {
    var myArray = [];
    $(":checkbox:checked").each(function() {
        myArray.push(this.value);
    });

    alert("Checked: " + myArray.join(","));
});​

DEMO: http://jsfiddle.net/hxfsB/25/

Sign up to request clarification or add additional context in comments.

Comments

4

You had an Uncaught ReferenceError: i is not defined; I've updated your fiddle here:

http://jsfiddle.net/hxfsB/24/

$('#envoyer').click(function(e){
    var myArray = new Array(3);
    for ( var j = 0; j < 3; j++) { 
        var check=$('input:checkbox[name=checkbox'+j+']').is(':checked');
        if(check==true)
            myArray[j]=$('input:checkbox[name=checkbox'+j+']').val();

        // Alert Current Selection //
        alert('check ' + " " + myArray[j] );
    }    
});

Keep in mind: undefined means the checkbox is NOT selected.

I hope this helps!

Comments

1

At your title suggests, if you want to get checked check-boxes values, you can do this,

Javascript:

$('#envoyer').click(function(e){
    $('input[type="checkbox"]:checked').each(function(){
        alert(this.value);
    })        
})​

Markup

<html>
    <body>
      one<input type="checkbox" name='checkbox0' value="one_name" checked>
      two<input type="checkbox" name='checkbox1' value="one_name1">
      three<input type="checkbox" name='checkbox2' value="one_name2">
        <input type="button" id="envoyer" value="Envoyer Reponse"  /> 
    </body>
</html>

Comments

0

try this out : http://jsfiddle.net/hxfsB/27/

there is an issue with the selector

Comments

0
$('#envoyer').click(function(e){
    var myArray=new Array(3);

    $('input[type=checkbox]:checked').each(function(i) {
       myArray[i] = $(this).val();
       //alert($(this).val());
    });
}​);​

Comments

0

The i in myArray[i] doesn't exist anywhere. You need to either put the alert inside the for loop and use myArray[j] or create a new for loop using i

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.