So it starts off with teamcategories list being populated, and an empty venue list, then when I change the category, I'd like the venue list to be updated to the list associated with that category as can be seen from the query.

You need to listen to the change event on the TeamCategory select element,get the selected option value and make an ajax call to your server where you will receive the selected team category id ,get venues for that category id and return the result in JSON format.