【发布时间】:2017-04-20 20:35:33
【问题描述】:
我在禁用已在另一个选择中选择的选项时遇到问题。选择框可以动态添加,无限制。我已尝试使用下面的脚本,但效果不佳。
我有一个这样的表单和脚本
var counteritem = 2;
var usedOptions = [];
function updateCounterItem(isRemove)
{
if (isRemove)
{
counteritem = counteritem - 1;
} else
{
counteritem = counteritem + 1;
}
if (counteritem > 1)
{
$("button#remove").prop("disabled", false);
} else
{
$("button#remove").prop("disabled", true);
}
}
$(document).ready(function()
{
updateCounterItem(true);
var counter = 1;
$('button#add').on('click', function(e)
{
e.preventDefault();
$('div.featured-item').last().clone().appendTo('div#featured-items');
counter = counter + 1;
$('.featured-item label').last().replaceWith('<label>Featured #' + counter + '</label>');
$('.featured-item select').last().attr('id', 'featured' + counter);
updateCounterItem(false);
$('.featured-item select').find('option').prop('disabled', false);
for (key in usedOptions)
{
value = usedOptions[key];
$('.featured-item select').find('option[value="' + value + '"]').prop('disabled', true);
}
console.log(usedOptions);
});
$('button#remove').on('click', function(e)
{
e.preventDefault();
console.log(usedOptions);
$('div.featured-item').last().remove();
counter = counter - 1;
updateCounterItem(true);
});
$(document).on('click', 'select', function()
{
$(this).find('option[value="' + $(this).val() + '"]').prop('disabled', false);
});
$(document).on('change', 'select', function()
{
var thisVal = $(this).val();
usedOptions = [];
$('option').prop('disabled', false);
$('select').each(function()
{
var value = $(this).val();
usedOptions[$(this).attr('id')] = value;
});
var value = '';
for (key in usedOptions)
{
value = usedOptions[key];
$('option[value="' + value + '"]').prop('disabled', true);
$('#' + key + ' option[value=' + value + ']').prop('disabled', false);
}
$(this).find('option[value="' + thisVal + '"]').prop('disabled', false);
console.log(usedOptions);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box-body">
<button id="add" class="btn btn-primary"><i class="fa fa-plus-circle"></i> Add item</button>
<button id="remove" class="btn btn-danger"><i class="fa fa-minus-circle"></i> Remove last item
</button>
<hr>
<div id="featured-items">
<div class="featured-item form-group">
<label>Featured #1</label>
<select id="featured1" name="sort[]" class="form-control featured">
<option disabled selected>Select one</option>
<option class="item" value="1">Andy</option>
<option class="item" value="2">Boss</option>
<option class="item" value="3">Cindy</option>
<option class="item" value="4">Drek</option>
</select>
</div>
</div>
</div>
【问题讨论】:
-
请试试小提琴
-
完成@TechBreak
标签: javascript php jquery html twitter-bootstrap