You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "David Lock (JIRA)" <ji...@apache.org> on 2013/11/28 15:38:35 UTC

[jira] [Created] (WICKET-5432) OnChangeAjaxBehavior continually triggered in IE11

David Lock created WICKET-5432:
----------------------------------

             Summary: OnChangeAjaxBehavior continually triggered in IE11
                 Key: WICKET-5432
                 URL: https://issues.apache.org/jira/browse/WICKET-5432
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 6.12.0
         Environment: Internet Explorer 11
            Reporter: David Lock


I have a DataTable with a single column.  The table has a toolbar assigned which provides sorting and filtering. 

The filtering is done via TextField that has the following OnChangeAjaxBehavior assigned. 


OnChangeAjaxBehavior onChangeAjaxBehavior = new OnChangeAjaxBehavior() 
{ 
    @Override 
    protected void onUpdate(AjaxRequestTarget target) 
    { 
         FilteredLazyLoadingDataProvider<T, S> provider = 
             (FilteredLazyLoadingDataProvider<T, S>) dataTable.getDataProvider(); 
         provider.filter(FilterAjaxFallbackOrderByBorder.this); 
                    
         target.add(dataTable); 
         target.appendJavaScript("moveCaretToEnd(document.getElementById('" + m_filter.getMarkupId() + "'))"); 
    } 
                
    @Override 
    protected void updateAjaxAttributes(AjaxRequestAttributes attributes) 
    { 
         super.updateAjaxAttributes(attributes); 
         attributes.setThrottlingSettings(new ThrottlingSettings(id, Duration.milliseconds(200), true)); 
     } 
}; 

When I view a page in Chrome/Firefox everything works as expected.  When I view the page in Internet Explorer 11 I observer the following issue. 

If the filter textfield has focus and is empty, the OnChangeAjaxBehavior.onUpdate method is continually called (ajax requests spam the server).  As soon as I enter a value into the text field, the filtering is performed and the ajax calls cease to spam the server. 

What is interesting is if I create a simple form with just a textfield in and assign the above OnChangeAjaxBehaviour, the textfield in the form does not have the same issue as the one in the table header. 

My app is deployed in Tomcat 7.0.30 (although the issue can also been seen when testing via jetty) 
_______________

Response from Martin in the user forum....

And the reason for the problem is at 
https://github.com/apache/wicket/blob/master/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js?source=c#L2620

I guess IE 11 finally implements 'oninput' event for text inputs. This is 
OK, we have to improve our #isIE() method to count IE 11 as evergreen 
browser. 
But it seems they broke somehow the other event listeners ... 




--
This message was sent by Atlassian JIRA
(v6.1#6144)