Comment créer la première option de jQuery?
<select id="target">
<option value="1">...</option>
<option value="2">...</option>
</select>
$("#target").val($("#target option:first").val());
Tu peux essayer ça
$("#target").prop("selectedIndex", 0);
// remove "selected" from any options that might already be selected
$('#target option[selected="selected"]').each(
function() {
$(this).removeAttr('selected');
}
);
// mark the first option as selected
$("#target option:first").attr('selected','selected');
Quand vous utilisez
$("#target").val($("#target option:first").val());
cela ne fonctionnera pas dans Chrome et Safari si la première valeur d'option est null.
Je préfère
$("#target option:first").attr('selected','selected');
car cela peut fonctionner dans tous les navigateurs.
La modification de la valeur de l'entrée select ou l'ajustement de l'attribut sélectionné peuvent écraser la propriété selectedOptions par défaut de l'élément DOM, ce qui entraînerait un élément qui pourrait ne pas être réinitialisé correctement dans un formulaire ayant appelé l'événement reset.
Utilisez la méthode prop de jQuery pour effacer et définir l'option requise:
$("#target option:selected").prop("selected", false);
$("#target option:first").prop("selected", "selected");
$("#target")[0].selectedIndex = 0;
Un point subtil que je pense j'ai découvert sur les réponses les plus votées est que, même si elles changent correctement la valeur sélectionnée, elles ne mettent pas à jour l'élément visible par l'utilisateur cochez à côté de l'élément mis à jour).
Le chaînage d'un appel .change () à la fin mettra également à jour le widget d'interface utilisateur.
$("#target").val($("#target option:first").val()).change();
(Notez que j'ai remarqué cela lors de l'utilisation de jQuery Mobile et d'une boîte sur le bureau Chrome, ce qui peut ne pas être le cas partout).
Si vous avez désactivé les options, vous pouvez ajouter not ([disabled]) pour empêcher leur sélection, ce qui entraîne les éléments suivants:
$("#target option:not([disabled]):first").attr('selected','selected')
Voici un autre moyen de réinitialiser les valeurs (pour plusieurs éléments sélectionnés):
$("selector").each(function(){
/*Perform any check and validation if needed for each item */
/*Use "this" to handle the element in javascript or "$(this)" to handle the element with jquery */
this.selectedIndex=0;
});
$('#newType option:first').prop('selected', true);
Aussi simple que ça:
$('#target option:first').prop('selected', true);
J'ai constaté que le simple fait de définir attr sélectionné ne fonctionne pas s'il existe déjà un attribut sélectionné. Le code que j'utilise maintenant désactive d'abord l'attribut sélectionné, puis sélectionne la première option.
$('#target').removeAttr('selected').find('option:first').attr('selected', 'selected');
Voici comment je le ferais:
$("#target option")
.removeAttr('selected')
.find(':first') // You can also use .find('[value=MyVal]')
.attr('selected','selected');
Bien que chaque fonction ne soit probablement pas nécessaire ...
$('select').each(function(){
$(this).find('option:first').prop('selected', 'selected');
});
travaille pour moi.
Si vous allez utiliser la première option par défaut comme
<select>
<option value="">Please select an option below</option>
...
alors vous pouvez simplement utiliser:
$('select').val('');
C'est gentil et simple.
Cela n'a fonctionné que pour moi en utilisant un déclencheur ('change') à la fin, comme ceci:
$("#target option:first").attr('selected','selected').trigger('change');
Utilisation:
$("#selectbox option:first").val()
Veuillez trouver le travail simple dans ce JSFiddle .
Au verso de la réponse de James Lee Baker, je préfère cette solution car elle supprime le support du navigateur pour:.
$('#target').children().prop('selected', false);
$($('#target').children()[0]).prop('selected', 'selected');
Pour moi, cela ne fonctionnait que lorsque j'ai ajouté la ligne de code suivante
$('#target').val($('#target').find("option:first").val());
Cela a fonctionné pour moi!
$("#target").prop("selectedIndex", 0);
Si vous stockez l'objet jQuery de l'élément select:
var jQuerySelectObject = $("...");
...
jQuerySelectObject.val(jQuerySelectObject.children().eq(0).val());
Vous pouvez sélectionner n'importe quelle option dans dropdown
en l'utilisant.
// 'N' can by any number of option. // e.g., N=1 for first option
$("#DropDownId").val($("#DropDownId option:eq(N-1)").val());
Vérifiez cette meilleure approche en utilisant jQuery avec ECMAScript 6 :
$('select').each((i, item) => {
var $item = $(item);
$item.val($item.find('option:first').val());
});
$("#target").val(null);
a bien fonctionné en chrome