J'essaie de définir le premier des quelques-uns à définir comme sélectionné
J'ai
<select name="id[21]" class="atributosSort">
<option value="107">1. Sin adaptadores de video (+$45)</option>
<option value="108">2. Mini Displayport to DVI (+$112)</option>
<option value="109">3. Mini Displayport to VGA</option>
</select>
J'ai essayé
jQuery(".atributosSort")[0].selectedIndex = 0;
et
jQuery(".atributosSort option:first").attr('selected','selected');
tous les deux discutés à Comment faire en sorte que la première option de <select> soit sélectionnée avec jQuery? mais lorsque j'inspecte le DOM, aucun attribut n'est ajouté à aucun
J'utilise jQuery () parce que je suis en mode noConflict. Cela pourrait-il être le problème?
Lorsque j'exécute les deux tentatives pour obtenir la valeur sélectionnée, aucune erreur ne se produit dans la console de script.
Une autre chose qui pourrait être pertinente est que je trie les options avec cette
function sortDropDownListByText() {
// Loop for each select element on the page.
jQuery("select").each(function() {
// Keep track of the selected option.
var selectedValue = jQuery(this).val();
// Sort all the options by text. I could easily sort these by val.
jQuery(this).html(jQuery("option", jQuery(this)).sort(function(a, b) {
return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
}));
// Select one option.
//jQuery(this).val(selectedValue);
});
}
// Use jQuery via jQuery(...)
jQuery(document).ready(sortDropDownListByText);
J'ai commenté jQuery (this) .val (selectedValue); parce que je pensais que cette ligne définissait une option comme étant sélectionnée et que je ne peux pas la remplacer mais cela ne fait aucune différence.
Des idées? Merci
As-tu essayé:
jQuery(".atributosSort option:first-child").attr("selected", true);
?
J'utilise "Select one ..." comme première option, sans valeur définie. J'ai trouvé cela fonctionne pour moi:
//for elements having classname, get the first option and make it selected
$('.classname').find('option:first').attr('selected','selected');
Ceci est similaire à celui affiché par @NeXXeuS, mais le fera pour tous vos champs sélectionnés.
pour les nouvelles versions de jQuery:
$(".atributosSort").prop("selectedIndex", 0)
Avez-vous essayé: (en mettant les parenthèses après "sortDropDownListByText" dans l'instruction "ready")
// Use jQuery via jQuery(...)
jQuery(document).ready(sortDropDownListByText(););
Avez-vous déjà essayé ce code? Je l'utilise pour réinitialiser mes listes déroulantes sur trop de projets utilisant jQuery:
// Use jQuery via jQuery(...)
$("#yourTarget").val($("#yourTarget option:first").val());
J'espère que cela pourrait vous aider.
jQuery(document).ready(function () {
jQuery(".atributosSort")[0].selectedIndex = 0;
});
par Bill le lézard ♦
est la meilleure réponse, il ne fait pas de bogue avec l'attribut sélectionné sur select.
Faites-vous cela quand $(document).ready(...)
?
Essaye ça:
jQuery(document).ready(function () {
jQuery(".atributosSort")[0].selectedIndex = 0;
});