问题删除了复制的val():checked .map函数

时间:2014-08-18 19:12:19

标签: javascript jquery twitter-bootstrap-wizard

我可以使用一些见解或有用的参考资料,查看在所选复选框上查找值的位置,如果有重复项,则只返回一个。

我正在使用bootstrap向导处理软件试用向导。第一个选项卡是"解决方案目录"用户可以通过数百种解决方案过滤。许多解决方案类型都是重复的,因为它们适用于多种行业类型。

用户进行选择后,会转到标签2并查看其选择。我能够映射:在下一步中检查并加入自定义分隔符中的值,但无法弄清楚如何仅显示重复值的一个实例。

例如,用户可能会选择两种类型的" Audits"用于定制解决方案。但是,配置团队只想知道他们想要一个"审计"模块。

<input type="checkbox" class='selection' value="Audits" name="Audits - Manufacturing">
<input type="checkbox" class='selection' value="Audits" name="Audits - Electrical">
<input type="checkbox" class='selection' value="Audits" name="Audits - Retail">
<input type="checkbox" class='selection' value="Trading" name="Trading - Manufacturing">
<input type="checkbox" class='selection' value="Trading" name="Trading - Retail">

我当前的代码输出了多个相同值的选择,并且有点如何处理它。

$(document).ready(function() {
$('#rootwizard').bootstrapWizard({
    onNext: function(tab, navigation, index) {
        if (index == 1) {
            // Make sure we entered the solutions
            if (!$('.selection:checked').val()) {
                alert('Please select a solution to try');
                $('.selection').focus();
                return false;
            }
        }
        // Show selections in next tab
        $('#showSelection').html('<li>' + $('.selection:checked').map(function() {
            return $(this).val();
        }).get().join('</li><li>') + '</li>');
      }
    });
});

1 个答案:

答案 0 :(得分:0)

您可以使用数组来存储您已经看过的值。类似的东西:

$(document).ready(function() {
$('#rootwizard').bootstrapWizard({
    onNext: function(tab, navigation, index) {
        if (index == 1) {
            // Make sure we entered the solutions
            if (!$('.selection:checked').val()) {
                alert('Please select a solution to try');
                $('.selection').focus();
                return false;
            }
        }
        var selections = [];
        // Show selections in next tab
        $('.selection:checked').each(function() { 
            var value = $(this).val()
            if ($.inArray(value, selections) < 0){
               selections.push(value);
            }
        })
        $('#showSelection').html('<li>' + selections.join('</li><li>') + '</li>');
      }
    });
});

小提琴:http://jsfiddle.net/2a460tfc/10/