【发布时间】:2017-08-08 15:04:11
【问题描述】:
我有一个会议注册,用户可以选择在 2 天内注册研讨会。他们不能在第二天选择同一个工作坊。但是,每个研讨会都有 40 名参与者的软限制,因此当注册加载时,系统会查询哪些研讨会还有剩余席位。
代码如下:
<select name="workshop1" required="required" id="workshop1">
<option disabled selected value=""> -- select an option -- </option>
<option value=”wkshp1”>Workshop name</option>
<option value=”wkshp2”>Workshop name</option>
<option value=”wkshp3”>Workshop name</option>
<option value=”wkshp4”>Workshop name</option>
<option value=”wkshp5”>Workshop name</option>
<option value=”wkshp6”>Workshop name</option>
</select>
<select name="workshop1" required="required" id="workshop2">
<option disabled selected value=""> -- select an option -- </option>
<option value=”wkshp1”>Workshop name</option>
<option value=”wkshp2”>Workshop name</option>
<option value=”wkshp3”>Workshop name</option>
<option value=”wkshp4”>Workshop name</option>
<option value=”wkshp5”>Workshop name</option>
<option value=”wkshp6”>Workshop name</option>
</select>
我正在使用 Stack-overflow 中的这段代码,它运行良好。
$(document).ready(function() {
$("#workshop1").change(function() {
$("select[name=workshop2] option").removeAttr("disabled");
var workshopName = $("select[name=workshop1]").val();
$("select[name=workshop2] option[value=" + workshopName + "]").attr("disabled", "disabled");
});
});
但是,虽然我可以禁用已满的页面加载研讨会,但上面的 jquery 代码将重新启用我在 Workshop2 中禁用的选项(研讨会已满)。如何遍历所有选项并排除那些已满的选项。第 1 天和第 2 天的研讨会相同。
【问题讨论】:
-
$("select[name=workshop2] option").removeAttr("disabled");重新启用所有选项。为什么需要这个代码行? -
原因是如果我为第 1 天选择了研讨会 2,那么第 2 天的研讨会 1 被禁用。但在我完成注册之前,我改变了主意,选择了workshop3。无论如何,我想我已经有了解决方案。现在测试一下。
标签: jquery forms select options