views:

886

answers:

5

Hai all

i have a problem, i have X <input type="checkbox" /> ind my code, now i what to foreach this object/array its out put. - look my code.

$("#denied_seekrs").click(function()
{ 
    if (!isCheckedById("selectname")) 
    { 
        alert ("Please select at least one event"); 
        return false; 
    } 
    else 
    { 
        alert( $("input[@id=selectname]:checked").val() ); //submit the form 
    } 
}); 

function isCheckedById(id) 
{ 
    var checked = $("input[@id="+id+"]:checked").length; 
    if (checked == 0) 
    { 
        return false; 
    } 
    else 
    { 
        return true; 
    } 
}

when i output it in alert i get a object, but if i have selecet 2 checkbox i what the value in this 2 checkboxes.

i hob i can be helpet and all here udnerstand me :)

A: 

When I got you right, you want the user to select one checkbox (or is it one or more?). This should do it:

$("#denied_seekrs").click(function()
{ 

    var $checkedInputs = $("input:checked"); 

    if ($checkedInputs.length != 1) 
    { 
        alert ("Please select one event"); 
        return false; 
    } 

    alert( $checkedInputs.val() ); //submit the form 
});

EDIT: After reading your question again, I realized that the above code does not answer your question. However, the above does work and is a much shorter version of your solution. Maybe you want to use it instead. To answer your question, you could alert the value of all checked boxes like this:

Change this:

    alert( $checkedInputs.val() ); //submit the form

to this:

    var values = "";
    $checkedInputs.each(function(){
      values += $(this).val() + " ";
    });

    alert( values );
Tim Büthe
no its not work, :/ its only return the first value.
NeoNmaN
@NeoNmaN: Yes, I first got your question wrong. I just added an example to get all the values in the alert.
Tim Büthe
A: 

I'm not exactly sure what you're looking for, but I'm guessing that the jQuery.each() method will help. You can use it to iterate over arrays, objects, and more.

var arr = [ "one", "two", "three", "four", "five" ];

jQuery.each(arr, function() {
     $("#" + this).text("My id is " + this + ".");
     return (this != "four"); // will stop running to skip "five"
});
cpharmston
+1  A: 

how about something like this:

 jQuery.each(checked, function() {
      $(checked + this).text("My id is " + this + ".");

    });
william
http://docs.jquery.com/Utilities/jQuery.each
william
mabye you should rename checked to another name
william
+1  A: 

Can it be that - ultimately - you are looking for $.serializeArray() or $.serialize()?

If not, then maybe this is helps you:

$("#denied_seekrs").click(function()
{ 
    if (!isCheckedById("selectname")) 
    { 
        alert ("Please select at least one event"); 
        return false; 
    } 
    else 
    { 
        // prepare array of values
        var values = [];

        // prepare list of checked checkboxes
        var $checkboxes = $("input[@id=selectname]:checked");

        // push each individual value into the array
        $checkboxes.each(function() { values.push( $(this).val() ); });

        // debug output
        alert( values.join("\n") ); 
        //submit the form 
    } 
});
Tomalak
+1  A: 

How about

$("#denied_seekrs").click(function() {
       var checkedInputs = $("input:checked");
       var test = "";
       $.each(checkedInputs, function(i, val) {
        test += val.value+",";
       });
       test = test.substring(0,(test.length-1));
       alert(test);
      });
william