html - 如何排除从输入复选框和单选中获取的重复值
问题描述
我制作了多步表单,最后一步是汇总步骤,在其中我从上一步中获取值并显示。单击摘要按钮功能获取值后,但是当有人单击上一个并更改某些值时,值是重复的。所以我的问题是如何排除从输入复选框和单选中获取的重复值?
var wybraneProdukty = [];
$('input.produkty').change(function() {
wybraneProdukty = [];
$('input.produkty').each(function(i, item) {
if ($(item).is(':checked')) {
wybraneProdukty.push($(item).val());
}
});
console.log("checkedAttr:", wybraneProdukty);
});
$('form #next_btn_jedzenie').click(function() {
jQuery.each(wybraneProdukty, function(i, val) {
$('#podsumowanie-produkty').append('<span>' + val + '</span></br>');
});
$('#podsumowanie-wejscia').append('<span>' + $("input[name=wejscie]:checked").val() + '</span>');
$('#podsumowanie-toaleta-pracownicy').append('<span>' + $("input[name=toaleta_pracownik]:checked").val() + '</span>');
$('#podsumowanie-toaleta-klient').append('<span>' + $("input[name=toaleta_klient]:checked").val() + '</span>');
$('#podsumowanie-zmywalnia').append('<span>' + $("input[name=zmywalnia]:checked").val() + '</span>');
$('#podsumowanie-jedzenie').append('<span>' + $("input[name=jedzenie]:checked").val() + '</span>');
});
解决方案
您的代码当前的工作方式存在一些问题。
首先,您在选中复选框时将它们的值添加到wybraneProdukty
数组中,但在未选中它们时不会删除它们。因此,当有人检查、取消检查然后重新检查一个项目时,您的重复问题也会发生。
从我在您的代码示例中看到的内容来看,我认为您可能希望wybraneProdukty
完全消除数组并只使用输入的值。
因此,在您当前拥有的按钮单击处理程序中:
jQuery.each(wybraneProdukty, function(i, val) {
$('#podsumowanie-produkty').append('<span>' + val + '</span></br>');
});
将其更改为:
$('input.produkty').each(function(i, item) {
if ($(item).is(':checked')) {
$('#podsumowanie-produkty').append('<span>' + $(item).val() + '</span></br>');
}
});
推荐阅读
- python - Nuke Python 在 nuke 脚本文件中保存工具设置
- html - 如何使用 CSS 自定义复选框?
- reactjs - ApolloProvider 客户端 - 如何从 React Class 组件访问?
- python - 如何强制python使用cmd而不是powershell执行命令
- swift - Swift 程序中的 Firebase 存储参考问题
- javascript - 难以将前端应用程序部署到谷歌应用程序引擎
- web-services - 为什么 webservice 在 Xamarin Forms 中抛出空指针
- angular - Angular - 使用现有的 ngForm 可选
- r - 将列转换为 gt 表对象中的摘要行
- vue.js - 无法使用 vuetify 的图标