наклон заставляет значения продолжать добавлять к входному

У меня есть проблема, которая я надеюсь, что кто-то может помочь мне с. Я могу получить текстовое значение своего флажка. То, чего я хочу достигнуть, является каждым разом, когда я нажимаю на флажок, он добавляет текст к входу с идентификатором "Selected". например: если флажок a, флажок b, флажок c проверяется, я хочу показать "a, b, c". Вместо этого, что я получаю, текст текущего, который проверяется. Любая справка была бы большой.

$(document).ready(function(){
    $("#ListBox input").click(function() {
            var cbText = $(this).next().text();

            $('#Selected').val(cbText);    
        });
});
1
задан jigfox 23 July 2010 в 16:13
поделиться

2 ответа

Похоже, вы хотите, чтобы #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

2
ответ дан 2 September 2019 в 22:48
поделиться

Предполагая, что ваши флажки имеют class='ListBox' (id должен быть уникальным, класс используется в нескольких элементах), приведенный ниже код заполнит текстовое поле ввода с id "Selected" текстом всех флажков класса 'ListBox', которые в данный момент отмечены, разделенных запятыми.

var checks = new Array();
$(".ListBox input:checked").each(
  function(){checks.push($(this).text())}
)
$('#Selected').val(checks.join(','));
0
ответ дан 2 September 2019 в 22:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: