So, unfortunately, your approach is "completely wrong"
Fortunately it's not hard to put right.
firstly - what's going wrong. Well, when you tab off the search field two things are happening. First the field is going to the server for validation. And this is where you are building the phone list right? Second you are asking the page to do a reload. This arrives in the web server as a second, simultaneous request.
The server gets 2 requests, so starts 2 threads to process them. There's no link between the threads, and nothing to say that one completes before the other. So you'll get "random" results - sometimes the filter will be built in time, sometimes it won't.
second, add the browse to the "reset list" of the Search field. Leave your filter-building as is.
If you don't come right, join the webinar tonight and I can walk through it with you. (see clarionlive.com)