Comment puis-je supprimer ou ajouter des éléments à une zone de sélection? J'exécute jQuery, cela devrait-il faciliter la tâche? Vous trouverez ci-dessous un exemple de sélection.
<select name="selectBox" id="selectBox">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="option4">option4</option>
</select>
Supprimer une option:
$("#selectBox option[value='option1']").remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="selectBox" id="selectBox">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="option4">option4</option>
</select>
Ajouter une option:
$("#selectBox").append('<option value="option5">option5</option>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="selectBox" id="selectBox">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="option4">option4</option>
</select>
Vous pouvez supprimer l'élément sélectionné avec ceci:
$("#selectBox option:selected").remove();
Ceci est utile si vous avez une liste et non une liste déroulante.
window.onload = function ()
{
var select = document.getElementById('selectBox');
var delButton = document.getElementById('delete');
function remove()
{
value = select.selectedIndex;
select.removeChild(select[value]);
}
delButton.onclick = remove;
}
Pour ajouter l'article, je créerais une deuxième boîte de sélection et:
var select2 = document.getElementById('selectBox2');
var addSelect = document.getElementById('addSelect');
function add()
{
value1 = select2.selectedIndex;
select.appendChild(select2[value1]);
}
addSelect.onclick = add;
Pas jQuery cependant.
Pour supprimer un article
$("select#mySelect option[value='option1']").remove();
Ajouter un article
$("#mySelect").append('<option value="option1">Option</option>');
Vérifier une option
$('#yourSelect option[value=yourValue]').length > 0;
Pour supprimer une option sélectionnée
$('#mySelect :selected').remove();
Cela devrait le faire:
$('#selectBox').empty();
Je trouve le plugin jQuery select box manipulation utile pour ce genre de chose.
Vous pouvez facilement supprimer un élément par index, valeur ou expression régulière.
removeOption(index/value/regex/array[, selectedOnly])
Remove an option by
- index: $("#myselect2").removeOption(0);
- value: $("#myselect").removeOption("Value");
- regular expression: $("#myselect").removeOption(/^val/i);
- array $("#myselect").removeOption(["myselect_1", "myselect_2"]);
Pour supprimer toutes les options, vous pouvez faire $("#myselect").removeOption(/./);
.
Ajouter/supprimer une valeur dynamiquement sans code dur:
// supprime la valeur de select dynamiquement
$("#id-select option[value='" + dynamicVal + "']").remove();
// Ajouter une valeur dynamique à sélectionner
$("#id-select").append('<option value="' + dynamicVal + '">' + dynamicVal + '</option>');
J'ai trouvé deux pages qui semblent utiles, c'est écrit pour ASP.Net, mais les mêmes choses devraient s'appliquer
Juste pour augmenter cela pour ceux qui cherchent, vous pouvez aussi simplement:
$("#selectBox option[value='option1']").hide();
et
$("#selectBox option[value='option1']").show();
function removeOptionsByValue(selectBox, value)
{
for (var i = selectBox.length - 1; i >= 0; --i) {
if (selectBox[i].value == value) {
selectBox.remove(i);
}
}
}
function addOption(selectBox, text, value, selected)
{
selectBox.add(new Option(text, value || '', false, selected || false));
}
var selectBox = document.getElementById('selectBox');
removeOptionsByValue(selectBox, 'option3');
addOption(selectBox, 'option5', 'option5', true);
<select name="selectBox" id="selectBox">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="option4">option4</option>
</select>
jQuery(function($) {
$.fn.extend({
remove_options: function(value) {
return this.each(function() {
$('> option', this)
.filter(function() {
return this.value == value;
})
.remove();
});
},
add_option: function(text, value, selected) {
return this.each(function() {
$(this).append(new Option(text, value || '', false, selected || false));
});
}
});
});
jQuery(function($) {
$('#selectBox')
.remove_options('option3')
.add_option('option5', 'option5', true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="selectBox" id="selectBox">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="option4">option4</option>
</select>
Je devais supprimer la première option d'une sélection, sans ID, seulement une classe, j'ai donc utilisé ce code avec succès:
$('select.validation').find('option:first').remove();
Je veux juste suggérer une autre façon d’ajouter une option
. Au lieu de définir les value
et text
comme chaîne, on peut également le faire:
var option = $('<option/>')
.val('option5')
.text('option5');
$('#selectBox').append(option);
Il s'agit d'une solution moins sujette aux erreurs lors de l'ajout dynamique des valeurs et du texte des options.
Si quelqu'un a besoin de supprimerTOUTESoptions à l'intérieur d'une sélection, j'ai effectué une petite fonction.
J'espère que tu trouves cela utile
var removeAllOptionsSelect = function(element_class_or_id){
var element = $(element_class_or_id+" option");
$.each(element,function(i,v){
value = v.value;
$(element_class_or_id+" option[value="+value+"]").remove();
})
}
Seulement avoir à courir
removeAllOptionsSelect("#contenedor_modelos");
c'est la boîte de sélection html
<select name="selectBox" id="selectBox">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="option4">option4</option>
</select>
lorsque vous souhaitez supprimer et ajouter totalement l'option de la zone de sélection, vous pouvez utiliser ce code
$("#selectBox option[value='option1']").remove();
$("#selectBox").append('<option value="option1">Option</option>');
parfois nous avons besoin de masquer et d'afficher l'option de la zone de sélection, mais pas de la supprimer, vous pouvez utiliser ce code
$("#selectBox option[value='option1']").hide();
$("#selectBox option[value='option1']").show();
parfois besoin de supprimer l'option sélectionnée de la zone de sélection, puis
$('#selectBox :selected').remove();
$("#selectBox option:selected").remove();
lorsque vous devez supprimer toutes les options, alors ce code
('#selectBox').empty();
quand besoin première option ou dernier alors ce code
$('#selectBox').find('option:first').remove();
$('#selectBox').find('option:last').remove();