javascript - 如果选择每天(复选框),则取消选择所有其他复选框
问题描述
我创建了电子商务网站,有包问题形式,例如用户可以自定义包。第一个问题中有三个单选按钮:
1. Daily
2. Weekly
3. Monthly
当我选择daily
然后隐藏 2 个问题,如果我选择weekly or monthly
然后显示两个问题,这两个问题是:
1. How many days you need service in a week?
2. Select the days.
有一张预览卡,让我给你看截图,这里是截图:
看截图 1
看截图 2
看截图 3
现在,看第三张(最后一张)截图,当我点击daily
单选框时,那 2问题被隐藏但预览卡中没有隐藏文本,我希望如果我单击/单击daily
单选按钮,那么应该取消选中两个问题(我隐藏的问题)并且应该从预览中删除文本卡。
这是html代码:
<div class="select_package_validity">
<h5 class="h5-responsive font-weight-bold q1_text"></h5>
<div class="package_validity_child">
<div class="custom-control custom-radio custom-control-inline plan_name_daily">
<input type="radio" class="custom-control-input plan_name" id="daily" name="plan_name_selector" value="Daily">
<label class="custom-control-label" for="daily">Daily</label>
</div>
<div class="custom-control custom-radio custom-control-inline plan_name_weekly">
<input type="radio" class="custom-control-input plan_name" id="weekly" name="plan_name_selector" value="Weekly">
<label class="custom-control-label" for="weekly">Weekly</label>
</div>
<div class="custom-control custom-radio custom-control-inline plan_name_monthly">
<input type="radio" class="custom-control-input plan_name" id="monthly" name="plan_name_selector" value="Monthly">
<label class="custom-control-label" for="monthly">Monthly</label>
</div>
</div>
<input type="hidden" name="plan_name" class="form-control selected_plan_name" />
</div>
<div class="select_days mt-4">
<h5 class="h5-responsive font-weight-bold q2_text"></h5>
<div class="custom-control custom-radio custom-control-inline ml-4">
<input type="radio" class="custom-control-input plan_days" id="5" name="plan_days_selector" value="5">
<label class="custom-control-label" for="5">5</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" class="custom-control-input plan_days" id="6" name="plan_days_selector" value="6">
<label class="custom-control-label" for="6">6</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" class="custom-control-input plan_days" id="7" name="plan_days_selector" value="7">
<label class="custom-control-label" for="7">7</label>
</div>
<input type="hidden" name="plan_days" class="form-control selected_plan_days" />
</div>
<div class="days_names mt-4">
<h5 class="h5-responsive font-weight-bold q3_text mb-2"></h5>
<div class="ml-4">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="monday" name="day_name_selector" value="Monday">
<label class="custom-control-label" for="monday">Monday</label>
</div>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="tuesday" name="day_name_selector" value="Tuesday">
<label class="custom-control-label" for="tuesday">Tuesday</label>
</div>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="wednesday" name="day_name_selector" value="Wednesday">
<label class="custom-control-label" for="wednesday">Wednesday</label>
</div>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="thursday" name="day_name_selector" value="Thursday">
<label class="custom-control-label" for="thursday">Thursday</label>
</div>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="friday" name="day_name_selector" value="Friday">
<label class="custom-control-label" for="friday">Friday</label>
</div>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="saturday" name="day_name_selector" value="Saturday">
<label class="custom-control-label" for="saturday">Saturday</label>
</div>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="sunday" name="day_name_selector" value="Sunday">
<label class="custom-control-label" for="sunday">Sunday</label>
</div>
</div>
<input type="hidden" class="form-control selected_days_names" name="days_names" />
</div>
这是jQuery代码:
$(document).ready(function() {
$('.q1_text').text("1. Select your package validity.");
$('.q2_text').text("2. How many days you need service in a week?");
$('.q3_text').text("3. Select the days.");
$('input[name="plan_name_selector"]:first').attr("checked", true);
check_plan_name_selector();
check_plan_name();
$('.plan_name').change(function() {
check_plan_name();
});
$("input[name='plan_name_selector']").click(function() {
check_plan_name_selector();
});
function check_plan_name() {
var plan_name = $(".selected_plan_name").val();
if (plan_name === 'Daily') {
$('.q4_text').text("2. Select your food time");
$('.days_names').hide();
$('.select_days').hide();
} else {
$('.q4_text').text("4. Select your food time");
$('.days_names').show();
$('.select_days').show();
}
}
function check_plan_name_selector() {
var value = $("input[name='plan_name_selector']:checked").val();
$('.selected_plan_name').val(value);
$('.selected_plan_nameVal').html("You have choosed <b>" + value + "</b> validity.");
}
$("input[name='day_name_selector']").on('change', function(e) {
var limit = $("input[name='plan_days_selector']:checked").val();
if ($("input[name='day_name_selector']:checked").length > limit) {
$(this).prop('checked', false);
}
});
$(".plan_days").change(function() {
let days = this.value;
$("input[name='day_name_selector']").each(function(index) {
this.checked = index < days;
}).trigger('change');
});
$("input[name='day_name_selector']").change(function() {
var final = $('input[name="day_name_selector"]:checked').map(function() {
return $(this).val();
}).get();
$('.selected_days_names').val(final.join(", "));
$('.selected_days_namesVal').html("You have choosed <b>" + final.join(", ") + "<br>");
});
$("input[name='plan_days_selector']").click(function() {
check_plan_days_selector();
});
function check_plan_days_selector(){
var value = $("input[name='plan_days_selector']:checked").val();
$(".selected_plan_days").val(value);
$(".selected_plan_daysVal").html("<b>"+value+"</b> days service.");
}
});
我的网站已经上线,你可以从这里查看Foodbox.pk,我卡住了,请帮助我
解决方案
我做到了,它像冠军一样完美。
function check_plan_name() {
.......
if (plan_name === 'Daily') {
........
$('.selected_days_namesVal').empty();
$('.selected_plan_daysVal').empty();
$('input[name="plan_days_selector"]').each(function() {
this.checked = false;
});
$('input[name="day_name_selector"]').each(function() {
this.checked = false;
});
$('.selected_plan_days').attr('value', '');
$('.selected_days_names').attr('value', '');
}
}
推荐阅读
- regex - 从包含多个 id 的响应中获取第一个“id”的正则表达式是什么?
- laravel - 模板中的模型函数调用
- perl - 使用 awk 为每个字段插入引号
- image - ImageMagick 比较 2 张图像,在输出图像上标有 2 种不同的颜色
- ionic-framework - 如何在 IONIC 4 中手动删除插页式谷歌广告
- vba - 循环遍历具有指定列号的数组中的列
- prestashop - Prestashop:隐藏没有产品的类别
- c# - 在 Linux 上反序列化 TimeZoneInfo 会抛出“Month 参数必须在 1 到 12 的范围内”
- javascript - 如何在 Visual Studio 项目中查找关键字
- mongodb - 如何在缝合函数中暂停 mongodb 缝合触发器