Comme le dit la question, comment définir la valeur d'un contrôle DropDownList à l'aide de jQuery?
$("#mydropdownlist").val("thevalue");
assurez-vous simplement que la valeur dans les balises d'options correspond à la valeur dans la méthode val.
Si vous travaillez avec index, vous pouvez définir l’index sélectionné directement avec .attr ():
$("#mydropdownlist").attr('selectedIndex', 0);
Cela le mettra à la première valeur de la liste de dépôt.
Edit: La façon dont je l'ai fait ci-dessus fonctionnait. Mais il semble que ce ne soit plus le cas.
Mais comme Han le fait remarquer si agréablement dans les commentaires, la bonne façon de le faire est la suivante:
$("#mydropdownlist").get(0).selectedIndex = index_here;
Comme suggéré par @Nick Berardi, si votre valeur modifiée n'est pas reflétée sur le front-end de l'interface utilisateur, essayez:
$("#mydropdownlist").val("thevalue").change();
Essayez cette approche très simple:
/*make sure that value is included in the options value of the dropdownlist
e.g.
(<select><option value='CA'>California</option><option value='AK'>Alaska</option> </select>)
*/
$('#mycontrolId').val(myvalue).attr("selected", "selected");
Si votre liste déroulante est Asp.Net, le code ci-dessous fonctionnera correctement.
$("#<%=DropDownName.ClientID%>")[0].selectedIndex=0;
Mais si votre DropDown est une liste déroulante HTML, alors ce code fonctionnera.
$("#DropDownName")[0].selectedIndex=0;
Meilleure réponse pour la question:
$("#comboboxid").val(yourvalue).trigger("chosen:updated");
par exemple:
$("#CityID").val(20).trigger("chosen:updated");
ou
$("#CityID").val("chicago").trigger("chosen:updated");
Il y a plusieurs façons de le faire. En voici quelques uns:
$("._statusDDL").val('2');
OR
$('select').prop('selectedIndex', 3);
Essayez:
jQuery("#availability option:selected").val();
Ou pour obtenir le texte de l'option, utilisez text ():
jQuery("#availability option:selected").text();
Plus d'infos:
http://api.jquery.com/val/
http://api.jquery.com/text/
$(document).ready(function(){
$('#button1').click(function(){
alert($('#combo :selected').text());
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="combo">
<option value="1">Test 1</option>
<option value="2">Test 2</option>
</select>
<input id="button1" type="button" value="Click!" />
Je pense que cela peut aider:
$.getJSON('<%= Url.Action("GetDepartment") %>',
{ coDepartment: paramDepartment },
function(data) {
$(".autoCompleteDepartment").empty();
$(".autoCompleteDepartment").append($("<option />").val(-1));
$.each(data, function() {
$(".autoCompleteDepartment").append($("<option />").val(this.CodDepartment).text(this.DepartmentName));
});
$(".autoCompleteDepartment").val(-1);
}
);
Si vous procédez ainsi, vous ajoutez un élément sans texte. Ainsi, lorsque vous cliquez sur de combo, cela n'apparaît pas, mais la valeur -1 vous avez ajouté une sélection ultérieure avec $ (". AutoCompleteDepartment"). Val (-1); vous permet de contrôler si le combo a une valeur valide.
J'espère que ça aide n'importe qui.
Désolé pour mon anglais.
Voici une fonction faite pour définir rapidement l’option sélectionnée:
function SetSelected(elem, val){
$('#'+elem+' option').each(function(i,d){
// console.log('searching match for '+ elem + ' ' + d.value + ' equal to '+ val);
if($.trim(d.value).toLowerCase() == $.trim(val).toLowerCase()){
// console.log('found match for '+ elem + ' ' + d.value);
$('#'+elem).prop('selectedIndex', i);
}
});
}
Appelez cette fonction avec l'id de l'élément argument et la valeur sélectionnée. comme ça:
SetSelected('selectID','some option');
C'est utile quand il y a beaucoup d'options à sélectionner.
// Format HTML de la liste déroulante.
<select id="MyDropDownList">
<option value=test1 selected>test1</option>
<option value=test2>test2</option>
<option value=test3>test3</option>
<option value=test4>test4</option>
// Si vous voulez changer l'élément sélectionné en test2 en utilisant javascript. Essaye celui-là. // définir l'option suivante u voulez sélectionner
var NewOprionValue = "Test2"
var RemoveSelected = $("#MyDropDownList")[0].innerHTML.replace('selected', '');
var ChangeSelected = RemoveSelected.replace(NewOption, NewOption + 'selected>');
$('#MyDropDownList').html(ChangeSelected);
définir la valeur et mettre à jour événement de liste déroulante
$("#id").val("1234").change();
Définir la valeur drop-down
selected
et mettre à jour les modifications
$("#PR2DistrictId option[value='@Model.PR2DistrictId']").attr("selected", true).trigger("chosen:updated")
Ici, nous définissons d’abord la valeur de Model
et nous la mettons à jour le cas échéant.
Si vous chargez tous les <options ....></options>
par appel Ajax
Suivez ces étapes pour le faire.
1). Créer une méthode distincte pour définir la valeur de la liste déroulante
Pour Ex:
function set_ip_base_country(countryCode)
$('#country').val(countryCode)
}
2) Appelez cette méthode lorsque l'appel ajax a abouti à la fin de la tâche d'ajout HTML.
Pour Ex:
success: function (doc) {
.....
.....
$("#country").append('<option style="color:black;" value="' + key + '">' + value + '</option>')
set_ip_base_country(ip_base_country)
}
Utiliser la réponse surlignée/cochée ci-dessus a fonctionné pour moi ... voici un petit aperçu. J'ai un peu triché en obtenant l'URL, mais en gros, je définis l'URL dans le code Javascript, puis je le règle via la réponse jQuery ci-dessus:
<select id="select" onChange="window.location.href=this.value">
<option value="">Select a task </option>
<option value="http://127.0.0.1:5000/choose_form/1">Task 1</option>
<option value="http://127.0.0.1:5000/choose_form/2">Task 2</option>
<option value="http://127.0.0.1:5000/choose_form/3">Task 3</option>
<option value="http://127.0.0.1:5000/choose_form/4">Task 4</option>
<option value="http://127.0.0.1:5000/choose_form/5">Task 5</option>
<option value="http://127.0.0.1:5000/choose_form/6">Task 6</option>
<option value="http://127.0.0.1:5000/choose_form/7">Task 7</option>
<option value="http://127.0.0.1:5000/choose_form/8">Task 8</option>
</select>
<script>
var pathArray = window.location.pathname.split( '/' );
var selectedItem = "http://127.0.0.1:5000/" + pathArray[1] + "/" + pathArray[2];
var trimmedItem = selectedItem.trim();
$("#select").val(trimmedItem);
</script>