У меня есть флажки внутри формы (id = 'submit_slides_1'):
После отправки формы я хочу получить все значения отмеченных флажков:
<input type='checkbox' class='chk_selection_info_box' name='thumb_selection[]' value='" + images[i]['url'] + "'>
и в моем javascript у меня есть следующий код:
$("#submit_slides_1").submit(function(e) {
e.preventDefault();
var x=$("#thumb_selection").is(":checked");
alert(x);
}
);
Но он продолжает давать мне ложь; Я что-то упускаю?
ADDED: Пробовал, но он также говорит: "undefined":
$(".chk_selection_info_box:checked").each(function(i,l)
{
alert(l.value);
});
Если вам нужно больше разъяснений, сообщите мне, какая часть вам нужна для уточнения!
благодаря
Нет элемента с этим id. Это будет то, чего вам не хватает. Добавьте идентификатор.
НО ваш код предполагает, что у вас есть несколько флажков, если это так, установка идентификатора не будет работать, и использование класса не будет работать, поскольку() будет работать только с первого элемента.
var checkedElements = $(".chk_selection_info_box:checked");
Вам, чем нужно использовать .serialize()
, .map()
или .each()
чтобы получить все значения.
Если все они имеют класс .chk_selection_info_box
, выберите эти элементы с помощью :checked
selector и .map()
значения в коллекции и преобразуйте его в .toArray()
.
var values = $(".chk_selection_info_box:checked").map(function(i, el) {
return el.value
}).toArray();
is()
возвращает boolean
значение, которое сообщает вам, соответствует ли элемент селектору. .map()
просто берет коллекцию и создает новую коллекцию с возвращаемыми значениями функции обратного вызова. Таким образом, мы выбрали все флажки и вернули значение .value
каждого блока в новый массив.
Попробуйте этот помощник
var x = $(".chk_selection_info_box").prop('checked');
form
имеетname
'submit_slides_1'
, но вы выбираетеform
сid
"#submit_slides_1"
. Это очевидно, но не обязательно правильно; пожалуйста: покажите свой HTML, не описывайте его у нас.