Ответ 1
Вы выбираете входы с атрибутом имени "bla"
, но ваши входы имеют атрибут имени "bla[]"
.
$("input[name='bla[]']").each(function (index, obj) {
// loop all checked items
});
У меня есть несколько флажков ввода (они называются одинаковыми для массива send на сервере).
Итак, мне нужно получить каждое значение этих флажков, и я хочу использовать в качестве имен флажков селектора, это не работает, пожалуйста, помогите.
<form>
<input type="checkbox" name="bla[]" value="1" />
<input type="checkbox" name="bla[]" value="2" />
</form>
JS:
$(document).ready( function () {
$("input[name=bla]").each( function () {
alert( $(this).val() );
});
});
Вы выбираете входы с атрибутом имени "bla"
, но ваши входы имеют атрибут имени "bla[]"
.
$("input[name='bla[]']").each(function (index, obj) {
// loop all checked items
});
Вы также должны включить скобки.,.
<input type="checkbox" name="bla[]" value="1" />
поэтому ссылка на него должна быть как name='bla[]'
$(document).ready( function () {
$("input[name='bla[]']").each( function () {
alert( $(this).val() );
});
});
Я хотел бы добавить, что если вы пытаетесь получить все флажки с этим именем, которые были выбраны, вы хотели бы использовать следующий синтаксис:
$("[name='bla[]']:checked").each(function () {
// do stuff
});
Убедитесь, что между закрывающимися ]
и :checked
Если вам нравится получать список всех значений отмеченных флажков (например, отправлять их как список в один вызов AJAX на сервер), вы можете получить этот список с помощью:
var list = $("input[name='bla[]']:checked").map(function () {
return this.value;
}).get();
$('[name="CheckboxName"]:checked').each(function () {
// do stuff
});
$("input[name='bla[]']").each( function () {
alert($(this).val());
});
Как было сказано несколько раз, вам нужно сменить селектор на
$("input[name='bla[]']")
Но я хочу добавить, иметь для использования одиночных или двойных кавычек при использовании [] в селекторе.
//получить значения флажка, используя имя флажка
<head>
<script>
function getCheckBoxValues(){
$('[name="checkname"]').each( function (){
alert($(this).val());
});
}
</script>
</head>
<body>
<input type="checkbox" name="checkname" value='1'/>
<input type="checkbox" name="checkname" value='2'/>
<input type="checkbox" name="checkname" value='3'/>
<input type="button" value="CheckBoxValues" onclick="getCheckBoxValues()"/>
</body>
//получаем только те значения, которые проверены
function getCheckBoxValues(){
$('[name="checkname"]').each( function (){
if($(this).prop('checked') == true){
alert($(this).val());
}
});
}