Foreach object/array в jQuery

У меня проблема, у меня есть X <input type="checkbox" /> в моем коде, теперь я хочу, чтобы этот объект/массив был удален. - Посмотри мой код.

$("#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; 
    } 
}

Когда я вывожу его в alert, я получаю объект, но если у меня есть флажок 2, то каково значение в этих 2 флажках.

Надеюсь, я могу быть полезен, и все здесь меня понимают:)

Ответ 1

Как насчет

$("#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);
});

Ответ 2

Я не совсем уверен, что вы ищете, но я предполагаю, что метод jQuery.each() будет Помогите. Вы можете использовать его для перебора массивов, объектов и т.д.

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"
});

Ответ 3

как насчет следующего:

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

    });

Ответ 4

Может быть, это - в конечном счете - вы ищете $.serializeArray() или $.serialize()?

Если нет, возможно, это поможет вам:

$("#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 
    } 
});

Ответ 5

Когда я понял, что вы хотите, чтобы пользователь выбрал один флажок (или он один или несколько?). Это должно сделать это:

$("#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: Повторив ваш вопрос, я понял, что приведенный выше код не отвечает на ваш вопрос. Однако вышеизложенное работает и является гораздо более короткой версией вашего решения. Возможно, вы хотите использовать его вместо этого. Чтобы ответить на ваш вопрос, вы можете предупредить значение всех отмеченных ящиков следующим образом:

Измените это:

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

:

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

    alert( values );