You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Martin Grigorov (JIRA)" <ji...@apache.org> on 2015/11/15 11:10:11 UTC

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

    [ https://issues.apache.org/jira/browse/WICKET-5432?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15005828#comment-15005828 ] 

Martin Grigorov commented on WICKET-5432:
-----------------------------------------

According to the latest comment at https://connect.microsoft.com/IE/feedback/details/810538/ie-11-fires-input-event-on-focus the problem is fixed in Edge and they don't have plans to downport it to IE 11.

> 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
>         Attachments: wicket-quickstart.7z
>
>
> 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.3.4#6332)