禁止删除多个 select 选项中的最后一个值 - select2
disallow remove for last value in multi select options - select2
所选 option
来自数据库。现在我想,我可以删除任何两个值,但不能删除最后一个值。我试过 disabled: true
但不知道如何限制不删除姓氏。提前致谢。
$(document).ready(function(){
$("#test").select2({
tags: true,
tokenSeparators: [',', ' ']
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
<select id="test" multiple style="width:250px" name="lastname">
<option value="1" selected="selected">One</option>
<option value="2" selected="selected">Two</option>
<option value="3" selected="selected">Three</option>
</select>
这应该适合你。有关更多此类事件,请参阅 official documentation。
$(document).ready(function(){
$("#test").select2({
tags: true,
tokenSeparators: [',', ' ']
});
$('#test').on("select2:unselecting", function (e) {
if($(this).val().length === 1) {
alert("You cannot remove last value");
e.preventDefault();
}
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
<select id="test" multiple style="width:250px" name="lastname">
<option value="1" selected="selected">One</option>
<option value="2" selected="selected">Two</option>
<option value="3" selected="selected">Three</option>
</select>
我已经尝试了一些代码,这可能工作得很好
$(document).ready(function(){
let prevVal = $('#test').val();
$("#test").select2({
tags: true,
allowClear: false,
tokenSeparators: [',', ' ']
}).on("change", function (e) {
if($("#test").val() !== null){
prevVal = $('#test').val();
}
else{
$('#test').val(prevVal)
$('#test').trigger('change.select2')
}
});});
所选 option
来自数据库。现在我想,我可以删除任何两个值,但不能删除最后一个值。我试过 disabled: true
但不知道如何限制不删除姓氏。提前致谢。
$(document).ready(function(){
$("#test").select2({
tags: true,
tokenSeparators: [',', ' ']
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
<select id="test" multiple style="width:250px" name="lastname">
<option value="1" selected="selected">One</option>
<option value="2" selected="selected">Two</option>
<option value="3" selected="selected">Three</option>
</select>
这应该适合你。有关更多此类事件,请参阅 official documentation。
$(document).ready(function(){
$("#test").select2({
tags: true,
tokenSeparators: [',', ' ']
});
$('#test').on("select2:unselecting", function (e) {
if($(this).val().length === 1) {
alert("You cannot remove last value");
e.preventDefault();
}
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
<select id="test" multiple style="width:250px" name="lastname">
<option value="1" selected="selected">One</option>
<option value="2" selected="selected">Two</option>
<option value="3" selected="selected">Three</option>
</select>
我已经尝试了一些代码,这可能工作得很好
$(document).ready(function(){
let prevVal = $('#test').val();
$("#test").select2({
tags: true,
allowClear: false,
tokenSeparators: [',', ' ']
}).on("change", function (e) {
if($("#test").val() !== null){
prevVal = $('#test').val();
}
else{
$('#test').val(prevVal)
$('#test').trigger('change.select2')
}
});});