【发布时间】:2016-07-12 15:12:31
【问题描述】:
Here is my page。当用户从购买下拉菜单中选择一个选项时,将出现一些单选按钮或膳食选项下拉菜单。我遇到了一个问题,如果用户选中一个单选按钮,但决定更改他的购买选项(通过转到购买下拉菜单并更改它),然后从膳食选项下拉菜单中选择并将产品添加到购物车,单选按钮选项仍会被选中并显示在购物车页面上。
我想要完成的是,如果他们的用户在购买选择之间切换,那么他们的单选按钮/输入选择每次都会被重置。
这是我当前的代码:
jQuery(function($) {
//show meal options depending on user choice
$('form').on('change', '#purchase', function(){
// Reset required fields and hide fields
$('select, input').prop('required', false);
$('#table-meals, .product-addon-please-choose-your-meal').hide();
if($(this).val()=="Individual") {
$('.product-addon-please-choose-your-meal').show();
$("#table-meals").not(".product-addon-please-choose-your-meal").hide();
$('input').prop('required',true);
$('#table-meals select').val("Select an Option...");
}
if($(this).val()=="Table of 10") {
$(".product-addon-please-choose-your-meal").not("#table-meals").hide();
$('#table-meals').show();
$('select').prop('required',true);
}
});
});
第一个if 语句就实现了这一点,尽管它并不完美;如果他们的用户选择了用餐选项,然后选择了不同的购买选项并再次返回,则用餐选项输入字段将为空白,而不是阅读选择选项。
知道如何在选择不同的购买选项时重置膳食选项输入字段(我计划有几个)吗?
【问题讨论】:
-
您的
$("#table-meals").not(".product-addon-please-choose-your-meal")说“选择单元素餐桌餐,但如果有课程则不选择...这是您的愿望吗? -
@MarkSchultheiss 对不起,我不明白你的问题。该行使用
.hide()函数来隐藏另一个选项。每次更改购买下拉选项时,我都会尝试重置/取消选中/默认选择。 -
标识为“table-meals”的元素是否具有“product-addon-please-choose-your-meal”类?如果没有,请隐藏它。这是另一种表达你所拥有的东西的方式,这种方式看起来很奇怪,特别是因为它只是在条件之前隐藏......我想我必须看看你的布局,看看它是否真的有意义。
-
没关系,这是一个无用的问题和代码,因为您的页面在呈现时没有 ID 为
table-meals的元素 -
@MarkSchultheiss
#table-meals和.product-addon-please-choose-your-meal是两个不同的 div;每一个都对应一个购买选择;如果用户选择individual,#table-mealsdiv 保持隐藏,而.product-addon-please-choose-your-meal出现; if Table of 10 如果选择,则反之亦然。
标签: javascript jquery html function