【发布时间】:2017-09-19 19:51:19
【问题描述】:
我对编码和尝试开发一个显示不同下拉列表的下拉框相当陌生。我设法创建了下拉列表并选择了正确的复选框列表,但是一旦选择了下拉选项,在使用它时不会应用限制。当使用下拉选择之外的复选框时,限制集按我的预期工作。
我当前的代码是:
<body ng-app="">
<div class="container">
<div class="form-group">
<div class="row">
<div class="col-sm-8">
<div ng-switch="myVar">
<div ng-switch-when="dogs">
<div class="pricing-levels-3">
<p><strong>Which level would you like? (Select 3 Levels)</strong></p>
<input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 1<br>
<input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 2<br>
<input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 3<br>
<input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 4<br>
<input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 5<br>
<input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 6<br>
<input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 7<br>
</div>
</div>
<div ng-switch-when="tuts">
<div class="pricing-levels-2">
<p><strong>Which level would you like? (Select 3 Levels)</strong></p>
<input class="single-checkbox1" type="checkbox" name="vehicle" value="Bike">Level 1<br>
<input class="single-checkbox1" type="checkbox" name="vehicle" value="Bike">Level 2<br>
<input class="single-checkbox1" type="checkbox" name="vehicle" value="Bike">Level 3<br>
</div>
</div>
<div ng-switch-when="cars">
<h1>Cars</h1>
<p>Read about cars.</p>
</div>
</div>
</div>
<div class="col-sm-4">
<h1>Select a topic:</h1>
<select ng-model="myVar" class="form-control">
<option value="dogs">Dogs</option>
<option value="tuts">Tutorials</option>
<option value="cars">Cars</option>
</select>
</div>
</div>
</div>
</div>
</body>
<script type="text/javascript">
var limit = 3;
$('input.single-checkbox').on('change', function(evt) {
if ($(this).siblings(':checked').length >= limit) {
this.checked = false;
}
});
</script>
<script type="text/javascript">
var limit1 = 1;
$('input.single-checkbox1').on('change', function(evt) {
if ($(this).siblings(':checked').length >= limit1) {
this.checked = false;
}
});
</script>
【问题讨论】:
-
复制和粘贴的这段代码似乎可以正常工作:jsfiddle.net/yedyL7hr你能澄清问题所在吗?
-
当我选择下拉选项“Dogs”并且第一个列表出现在其中时,不会限制复选框的选择。我在“教程”下有第二个列表,它再次不限制选择。但是当在下拉列表之外使用时,它们会受到限制。
-
我假设您在相同的内容中使用 Angular -> ng-app 和 jQuery。我不会推荐它。不清楚你想在这里用 ngSwitch 归档什么,只显示部分复选框?
-
我明白了。下拉选择将显示完整列表,但我想限制可以进行多少选择。例如,在第一个选择“狗”中,我有 7 个复选框,但希望限制为 3 个选择。然后在第二个选项“教程”中,我想从 3 个选项中选择 1 个。
标签: javascript html checkbox drop-down-menu