Javascript 在:checked.map函数中删除重复val()的问题

Javascript 在:checked.map函数中删除重复val()的问题,javascript,jquery,twitter-bootstrap-wizard,Javascript,Jquery,Twitter Bootstrap Wizard,我可以使用一些洞察或有用的参考来查找所选复选框上的检查值,如果有重复项,则只返回一个 我正在使用引导向导开发软件试用向导。第一个选项卡是“解决方案目录”,用户可以在其中筛选数百个解决方案。许多解决方案类型都是重复的,因为它们适用于多个行业类型 一旦用户做出选择,他们将转到选项卡2并查看他们的选择。在下一步中,我能够映射:选中并在自定义分隔符中连接值,但无法确定如何仅显示重复值的一个实例 例如,用户可以为自定义解决方案选择两种类型的“审核”。然而,资源调配团队只想知道他们想要一个“审计”模块

我可以使用一些洞察或有用的参考来查找所选复选框上的检查值,如果有重复项,则只返回一个

我正在使用引导向导开发软件试用向导。第一个选项卡是“解决方案目录”,用户可以在其中筛选数百个解决方案。许多解决方案类型都是重复的,因为它们适用于多个行业类型

一旦用户做出选择,他们将转到选项卡2并查看他们的选择。在下一步中,我能够映射:选中并在自定义分隔符中连接值,但无法确定如何仅显示重复值的一个实例

例如,用户可以为自定义解决方案选择两种类型的“审核”。然而,资源调配团队只想知道他们想要一个“审计”模块


我当前的代码正在输出多个相同值的选择,并且有点纠结于如何处理这个问题

$(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>');
      }
    });
});
$(文档).ready(函数(){
$(“#根向导”).bootstrapWizard({
onNext:函数(选项卡、导航、索引){
如果(索引==1){
//确保我们输入了解决方案
if(!$('.selection:checked').val(){
警报(“请选择要尝试的解决方案”);
$('.selection').focus();
返回false;
}
}
//在下一个选项卡中显示所选内容
$('#showSelection').html('
  • '+$('.selection:checked').map(函数(){ 返回$(this.val(); }).get().join(“
  • ”)+“
  • ”); } }); });
    您可以使用数组来存储已经看到的值。比如:

    $(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>');
          }
        });
    });
    
    $(文档).ready(函数(){
    $(“#根向导”).bootstrapWizard({
    onNext:函数(选项卡、导航、索引){
    如果(索引==1){
    //确保我们输入了解决方案
    if(!$('.selection:checked').val(){
    警报(“请选择要尝试的解决方案”);
    $('.selection').focus();
    返回false;
    }
    }
    var选择=[];
    //在下一个选项卡中显示所选内容
    $('.selection:checked')。每个(函数(){
    var值=$(this.val()
    如果($.inArray(值,选择)<0){
    选择。推送(值);
    }
    })
    $('#showSelection').html('
  • '+selections.join('
  • '))+'
  • '); } }); });

    小提琴手:

    谢谢你的建议。这对我来说是有意义的,但当我出于某种原因实现时,它实际上只是在第二个选项卡上显示所有变量。它可以防止重复,但不应该将所有变量都推到第二个选项卡中。我会看看我是否能凑一把小提琴来帮助演示这个问题。我不完全确定你的意思,小提琴肯定会有帮助。这不是和您的原始代码做相同的事情,但是没有重复的代码吗?另外,我在if条件(我现在的回答中修改了)上缺少了一个括号。Hi dehrg,很抱歉延迟,昨天晚上离线了。这里是我的原始代码和我正在处理的问题。我将其保留为原始版本,以便您可以看到复制问题,但当我将上面的amendment添加到脚本中时,它正在剥离值,当我将已知值类型添加到var中时,它显示了每个值的一个实例。我显然错过了什么。感谢您提供的任何帮助/指导。我用修订的代码和更新的小提琴更新了我的答案。关于
    $的返回值,我在那里有一个错误。inArray
    。如果小提琴仍不能满足您的要求,我可能需要更多的澄清!!这完美地解决了这个问题!!它还帮助我更好地理解了.inArray的应用,因为我还在学习jQuery——感谢您的帮助和洞察力。试图找出最后两个悬而未决的问题。不要期望您修复我的工作(重要的是,我了解事情,所以我会学习),但是如果您有时间,也许您可以为我指出关于在选项卡4中设置val的正确方向(我怀疑我使用的.html不正确)。另外,不确定为什么my.find(“a[href=”).trigger('click')在最后一步中不起作用。当前小提琴:
    $(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>');
          }
        });
    });