Fill a Select/Option from Json with jQuery
More jQuery and Json…
To fill a listbox (select) with items from a Json call.
I got this helper class to handle the options/items:
public class SelectOption { public String Value { get; set; } public String Text { get; set; } }
A sample action/method in ASP.NET MVC that returns Json:
public JsonResult GetJson() { var list = new List<SelectOption> { new SelectOption { Value = "1", Text = "Aron" }, new SelectOption { Value = "2", Text = "Bob" }, new SelectOption { Value = "3", Text = "Charlie" }, new SelectOption { Value = "4", Text = "David" } }; return Json(list); }
Some HTML and jQuery to fill the list at page load:
<select id="MyList" /> <script type="text/javascript"> $(document).ready(function() { $.getJSON("/Json/GetJson", null, function(data) { $("#MyList").addItems(data); }); }); $.fn.addItems = function(data) { return this.each(function() { var list = this; $.each(data, function(index, itemData) { var option = new Option(itemData.Text, itemData.Value); list.add(option); }); }); }; $("#MyList").change(function() { alert('you selected ' + $(this).val()); }); </script>