I have a custom Visualforce page that includes a dynamically sized table. The first column in the table is a Lookup to Account. When that value is chosen, some logic is run to populate some of the subsequent columns in that row.
A user has noticed that when typing in the lookup, sometimes the "My Recent Items" dropdown freezes in place. The rest of the form remains usable, but that hover frame just stays in place. I was able to reproduce it by clicking on the header "My Recent Items" rather than a value.
The above picture is 2 lookup "recent items" after I removed the rows on the Visualforce page (they don't go away). The user apparently triggered this some other way, where he was able to get rid of them when the lookup was removed from the screen. It seems to happen for me whether I have just one item in the recent items, or a list of them.
I'm currently thinking that this has to do with the fact that this lookup drives a refresh of the page, because I have some other Visualforce pages with similar implementations that don't seem to have the same issue (but also don't autorefresh other columns in the row based on the lookup). Curious if anyone else has experienced this. Code for this column in the pageBlockTable is below.
<apex:column headerValue="Account" width="60px">
<apex:variable var="incomeNum1" value="{!incomeNum1 + 1}"/>
<apex:inputField value="{!t.Account__c}" required="false">
<apex:actionSupport event="onchange" rerender="incomeBlock">
<apex:param name="depositIndex" assignTo="{!depositIndex}" value="{!incomeNum1}"/>
</apex:actionSupport>
</apex:inputField>
</apex:column>
In this example, "incomeBlock" refers to the PageBlock that encapsulates a PageBlockSection, and the PageBlockTable is within that. I also use some different apex variables/params to keep track of row indices for add/remove.
EDIT (3/12/13): I also tried changing actionSupport to actionFunction based on this post but got the same results.
<apex:column headerValue="Account" width="60px">
<apex:variable var="incomeNum1" value="{!incomeNum1 + 1}"/>
<apex:inputField value="{!t.Account__c}" required="false" onchange="actionChosen()">
</apex:inputField>
<apex:actionFunction name="actionChosen" reRender="incomeBlock">
<apex:param name="depositIndex" assignTo="{!depositIndex}" value="{!incomeNum1}"/>
</apex:actionFunction>
</apex:column>
EDIT (3/13/13): I replicated it in a smaller subset of code referred to in these 2 gists. If you load those up (and have some recent items), type in the first letter of an Account and then click on the My Recent Items a few times (I don't think this is what users are doing...but it is how I am replicating). Then if you change the "onchange" to "onselect", it works fine, but the implicit autocompletion on blur stops working.