If you are not using jQuery Mobile, your code will work as it is. With jQuery Mobile, you can update the pseudo- .selectmenu("refresh") calling .selectmenu("refresh") on it like this:
$('div[data-role="controlgroup"] a').click(function(){ $('#City').val( $(this).text().charAt(0) ).selectmenu("refresh"); });
Demo: http://jsfiddle.net/8RUBj/18/
Note that you do not need to assign a separate click handler for each button: for demo purposes, I showed a rather awkward way to make the code more general so that it works without changing your html, but you could add data- or something attributes to the buttons to indicate which value is associated with each.
Learn more about jQuery Mobile selection methods .
source share