J'ai un menu déroulant comme vu ci-dessous:
<select id="models" onchange="removeElements()">
<option id = "remove" value="0">R8</option>
<option id = "remove" value="1">Quattro</option>
<option id = "remove" value="2">A6 hatchback</option>
</select>
Comment pourrais-je créer le script removeElements()
qui supprimerait toutes les options de la sélection?
Vous n'avez pas indiqué sur quel événement.Vous n'avez qu'à utiliser ci-dessous sur votre écouteur d'événement. Ou dans le chargement de votre page
$('#models').empty()
Puis repeupler
$.getJSON('@Url.Action("YourAction","YourController")',function(data){
var dropdown=$('#models');
dropdown.empty();
$.each(data, function (index, item) {
dropdown.append(
$('<option>', {
value: item.valueField,
text: item.DisplayField
}, '</option>'))
}
)});
Vous pouvez soit utiliser .remove () sur les éléments d’option:
.remove (): supprime le jeu d'éléments correspondants du DOM.
$('#models option').remove(); or $('#models').remove('option');
ou utilisez .empty () on select:
.empty (): supprime tous les nœuds enfants de l'ensemble des éléments correspondants du DOM.
$('#models').empty();
cependant, pour repeupler les options supprimées, vous devez la stocker pendant la suppression.
Vous pouvez également obtenir la même chose en utilisant show/hide:
$("#models option").hide();
et plus tard pour leur montrer:
$("#models option").show();
Au cas où .empty () ne fonctionne pas pour vous, ce qui est pour moi
function SetDropDownToEmpty()
{
$('#dropdown').find('option').remove().end().append('<option value="0"></option>');
$("#dropdown").trigger("liszt:updated");
}
$(document).ready(
SetDropDownToEmpty() ;
)
function removeElements(){
$('#models').html('');
}
Essaye ça
function removeElements(){
$('#models').html("");
}
Toute personne utilisant JavaScript (par opposition à JQuery) pourrait essayer cette solution, où "modèles" est l'ID du champ de sélection contenant la liste:
var DDlist = document.getElementById("models");
while(DDlist.length>0){DDlist.remove(0);}