J'ai la boite de sélection
<select id="my_select">
<option value="a">a</option>
<option value="b" selected="selected">b</option>
<option value="c">c</option>
</select>
<div id="reset">
reset
</div>
J'ai aussi un bouton de réinitialisation, ici la valeur par défaut (sélectionnée) est "b", supposons que je sélectionne "c" et après avoir besoin de rétablir la valeur de la zone de sélection par défaut, comment faire cela à l'aide de jQuery?
$("#reset").on("click", function () {
// What do here?
});
jsfiddle: http://jsfiddle.net/T8sCf/1/
Vous pouvez utiliser la propriété defaultSelected
d'un élément d'option :
Contient la valeur initiale de l'attribut HTML
selected
, indiquant si l'option est sélectionnée par défaut ou non.
Ainsi, l'interface DOM garde déjà trace de l'option sélectionnée initialement.
$("#reset").on("click", function () {
$('#my_select option').prop('selected', function() {
return this.defaultSelected;
});
});
Cela pourrait même fonctionner pour des éléments à sélections multiples.
Si vous ne souhaitez pas parcourir toutes les options, mais "interrompre" après avoir trouvé celle sélectionnée à l'origine, vous pouvez utiliser .each
à la place:
$('#my_select option').each(function () {
if (this.defaultSelected) {
this.selected = true;
return false;
}
});
Sans jQuery:
var options = document.querySelectorAll('#my_select option');
for (var i = 0, l = options.length; i < l; i++) {
options[i].selected = options[i].defaultSelected;
}
$('#my_select').get(0).selectedIndex = 1;
Mais, à mon avis, le meilleur moyen consiste à utiliser HTML uniquement (avec <input type="reset" />
):
<form>
<select id="my_select">
<option value="a">a</option>
<option value="b" selected="selected">b</option>
<option value="c">c</option>
</select>
<input type="reset" value="reset" />
</form>
$("#reset").on("click", function () {
$("#my_select").val('b');//Setting the value as 'b'
});
Vous pouvez utiliser l'attribut data
de l'élément select
<select id="my_select" data-default-value="b">
<option value="a">a</option>
<option value="b" selected="selected">b</option>
<option value="c">c</option>
</select>
Votre javascript,
$("#reset").on("click", function () {
$("#my_select").val($("#my_select").data("default-value"));
});
METTRE &AGRAVE; JOUR
Si vous ne connaissez pas la sélection par défaut et si vous ne pouvez pas mettre à jour le code HTML, Ajoutez le code suivant dans le dom ready,
$("#my_select").data("default-value",$("#my_select").val());
Pourquoi ne pas utiliser une simple fonction javascript et l'appeler lors d'un événement onclick?
function reset(){
document.getElementById("my_select").selectedIndex = 1; //1 = option 2
}
Une méthode simple consiste à ajouter un attribut data-default
à la sélection
<select id="my_select" data-default="b">
...
</select>
Alors le code est vraiment simple:
$("#reset").on("click", function () {
var $select = $('#my_select');
$select.val($select.data('default'));
});
Exemple en direct: http://jsfiddle.net/T8sCf/7/
Vous pouvez également réinitialiser les valeurs de plusieurs SELECT et ensuite déclencher le bouton d'envoi.
S'il vous plaît voir ici en action:
$(function(){
$("#filter").click(function(){
//alert('clicked!');
$('#name').prop('selectedIndex',0);
$('#name2').prop('selectedIndex',0);
$('#submitBtn').click();
});
});
$("#reset").on("click", function () {
$('#my_select').prop('selectedIndex',0);
});
Avec jquery:
$("#reset").on("click", function() {
$('#my_select').val($('#my_select').find('option[selected="selected"]').val());
}
Un moyen simple qui fonctionne est
var myselect = $("select.SimpleAddAClass");
myselect[0].selectedIndex = 0;
myselect.selectmenu("refresh");
Liez un gestionnaire d'événements à l'événement focus de la select
pour capturer la valeur précédente. Définissez ensuite la valeur de select
sur la valeur précédente lorsque vous cliquez sur Réinitialiser.
var previousValue = "";
$("#my_select").on("focus",function(){
previousValue = $(this).val();
});
$("#reset").on("click", function () {
$("#my_select").val(previousValue);
});
Exemple de travail:http://jsfiddle.net/T8sCf/17/
Vous pouvez faire de cette façon:
var preval = $('#my_select').val(); // get the def value
$("#reset").on("click", function () {
$('#my_select option[value*="' + preval + '"]').prop('selected', true);
});
prenez une var
qui contient la valeur chargée par défaut avant l'événement change, puis sélectionnez l'option avec le sélecteur d'attribut value avec la valeur var
et définissez la propriété sur selected.
Si vous utilisez des formulaires Spring, vous devrez peut-être réinitialiser l’étiquette sélectionnée sur votre option. Vous définiriez votre formulaire: select id id sur une chaîne vide réinitialisera votre sélection avec l'étiquette comme valeur par défaut.
<form:select path="myBeanAttribute" id="my_select">
<form:option value="" label="--Select One--"/>
<form:options items="${mySelectionValueList}"/>
</form:select>
$("#reset").on("click", function () {
$("#my_select").val("");
});
dans le cas où il y a un bouton de réinitialisation. Autrement
$("#my_select").val("");
Ce code va vous aider.
<html>
<head>
<script type="text/JavaScript" src="jquery-2.0.2.min.js"></script>
<script type="text/JavaScript">
$(function(){
var defaultValue = $("#my_select").val();
$("#reset").click(function () {
$("#my_select").val(defaultValue);
});
});
</script>
</head>
<body>
<select id="my_select">
<option value="a">a</option>
<option value="b" selected="selected">b</option>
<option value="c">c</option>
</select>
<div id="reset">
<input type="button" value="reset"/>
</div>
</body>
Pour ceux qui travaillent avec Bootstrap-select, vous pouvez utiliser ceci:
$('#mySelect').selectpicker('render');
Cela fonctionne pour moi:
$("#reset").on("click", function () {
$("#my_select option[selected]").prop('selected', true);
}
Vous recherchez pour l'option par défaut qui a l'attribut select et modifiez la sélection en fonction de cette option.
$("#reset").on("click", function () {
$('#my_select').val('-1');
});
J'essayais de le résoudre comme les autres réponses, malheureusement, je n'ai pas eu le moyen de le faire, une fois que j'ai essayé d'écrire ci-dessous:
$('#<%=ddID.ClientID %>').get(0).selectedIndex = 0;
ce code fonctionne pour moi, j'espère que cela vous sera utile.
Meilleures salutations.
Samuel Alvarado.
$('#my_select').find('option:not(:first)').remove();
Appelez cette fonction à chaque fois avant de renseigner le select
Réinitialiser tous les champs de sélection à l'option par défaut, où l'attribut sélectionné est défini.
$("#reset").on("click", function () {
// Reset all selections fields to default option.
$('select').each( function() {
$(this).val( $(this).find("option[selected]").val() );
});
});