Voici le script entier avec un appel AJAX pour cibler une liste unique dans une page avec plusieurs listes. Aucun des autres éléments ci-dessus n'a fonctionné pour moi jusqu'à ce que j'utilise l'attribut "id" même si mon nom d'attribut est "ItemKey". En utilisant le débogueur
Chrome Debug
j'ai pu voir que l'option choisie avait des attributs: une carte à l'JQuery « id » et la valeur.
<html>
<head>
<script type="text/JavaScript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<select id="List1"></select>
<select id="List2">
<option id="40000">List item #1</option>
<option id="27888">List item #2</option>
</select>
<div></div>
</body>
<script type="text/JavaScript">
//get a reference to the select element
$select = $('#List1');
//request the JSON data and parse into the select element
$.ajax({
url: 'list.json',
dataType:'JSON',
success:function(data){
//clear the current content of the select
$select.html('');
//iterate over the data and append a select option
$.each(data.List, function(key, val){
$select.append('<option id="' + val.ItemKey + '">' + val.ItemText + '</option>');
})
},
error:function(){
//if there is an error append a 'none available' option
$select.html('<option id="-1">none available</option>');
}
});
$("#List1").change(function() {
var optionSelected = $('#List1 option:selected').attr('id');
$("div").text(optionSelected);
});
</script>
</html>
Voici le fichier JSON pour créer ...
{
"List":[
{
"Sort":1,
"parentID":0,
"ItemKey":100,
"ItemText":"ListItem-#1"
},
{
"Sort":2,
"parentID":0,
"ItemKey":200,
"ItemText":"ListItem-#2"
},
{
"Sort":3,
"parentID":0,
"ItemKey":300,
"ItemText":"ListItem-#3"
},
{
"Sort":4,
"parentID":0,
"ItemKey":400,
"ItemText":"ListItem-#4"
}
]
}
Hope this helps, merci à vous tous ci-dessus pour me faire jusque-là.
Est-ce que quelqu'un vous a dit "YOU ROCK !!!" .. Eh bien, je pense que je suis le premier! – curiousBoy