J’ai le code suivant sur la page ASP.net:
JQuery pour définir l’index sur 0 pour les trois listes déroulantes:
$(function () { $("body").on("click", "#ClearForm", function (e) { e.preventDefault(); $("select#ddl1, select#ddl2, select#ddl3").prop('selectedIndex', 0); //does not set the selected index to 0 alert($("select#ddl1").text()); //displays all the options from #ddl1 }); });
Comment puis-je modifier si l’index dropdownlist est défini sur 0.
Rendu HTML de la première liste déroulante:
Select a State AL AK AZ
J’ai essayé le JQuery suivant et il renvoie null
:
alert($("select#ddl1").val());
Aussi essayé le suivant et cela n’a pas fonctionné:
$('select').each(function () { $(this).find('option:first').prop('selected', 'selected'); });
Ajout du JavaScript suivant:
function setSelectedIndex(dropdownlist, selVal) { var ddl1 = document.getElementById(dropdownlist); alert(ddl1.selectedIndex); if (ddl1.length >= selVal) { //if the selected value is greater then 0, the alert is shown but the value is not set back to 0. ddl1.selectedIndex = selVal; alert("greater or equal"); } else { alert("not greater or equal"); } }
Il semble que si je supprime le Jquery choisi, cela fonctionne très bien: http://jsfiddle.net/bpbvhsay/
Il y a plusieurs façons de faire cela, mais voici la solution avec JavaScript:
function setSelectedIndex(dropdownlist, selVal) var ddl1 = document.getElementById(dropdownlist); //alert(ddl1.selectedIndex); //displays the proper index... if(ddl1.length >= selVal) { ddl1.selectedIndex = selVal; } }
Appelez la fonction ci-dessus selon vos besoins comme ci-dessous:
setSelectedIndex('<%=ddl1.ClientID %>', 2);
UPDATE Comme vous avez dit que vous avez déjà défini ClientIDMode
, essayez la fonction mise à jour suivante:
function setSelectedIndex(selVal){ var ddl1 = document.getElementById('ddl1'); if(ddl1.length >= selVal) { ddl1.selectedIndex = selVal; } }
et appelez-le comme:
setSelectedIndex(0);
J’utilisais le Jquery choisi qui a empêché la liste déroulante de se mettre à jour.
C’est le HTML:
JavaScript qui définit l’index sélectionné sur 0:
function setSelectedIndex(dropdownlist, selVal) { var ddl1 = document.getElementById(dropdownlist); if (selVal < ddl1.selectedIndex) { ddl1.selectedIndex = selVal; $(ddl1).val(0).trigger('chosen:updated'); } }
Cela fait l'affaire.