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