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)