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