У меня есть проблема, которая я надеюсь, что кто-то может помочь мне с. Я могу получить текстовое значение своего флажка. То, чего я хочу достигнуть, является каждым разом, когда я нажимаю на флажок, он добавляет текст к входу с идентификатором "Selected". например: если флажок a, флажок b, флажок c проверяется, я хочу показать "a, b, c". Вместо этого, что я получаю, текст текущего, который проверяется. Любая справка была бы большой.
$(document).ready(function(){
$("#ListBox input").click(function() {
var cbText = $(this).next().text();
$('#Selected').val(cbText);
});
});
Похоже, вы хотите, чтобы #Selected
имел текстовые значения для выбранных в данный момент флажков.
Если это так, попробуйте следующее: http://jsfiddle.net/nAACW/4/ (обновлено)
$(document).ready(function(){
$("#ListBox input").click(function() {
var cbText = $('#ListBox').find(':checked').next()
.map(function() {
return $.text([this]);
}).get().join(', ');
$('#Selected').val(cbText);
});
});
EDIT: Изменено на использование $('#ListBox').find(':checked')
вместо $(this). parent().find(':checked')
, как правильно предложил @Felix Kling
Предполагая, что ваши флажки имеют class='ListBox' (id должен быть уникальным, класс используется в нескольких элементах), приведенный ниже код заполнит текстовое поле ввода с id "Selected" текстом всех флажков класса 'ListBox', которые в данный момент отмечены, разделенных запятыми.
var checks = new Array();
$(".ListBox input:checked").each(
function(){checks.push($(this).text())}
)
$('#Selected').val(checks.join(','));