Custom Knockout Twitter Typeahead binding broken
Reported by
jones...@gmail.com,
Feb 9 2017
|
|||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 Steps to reproduce the problem: 1. We have a custom typeahead control using Twitter typeahead that binds a JSON object to items within a Knockout observable array 2. When searching for an item, we display a string representing that object and then bind the object to the knockout observable What is the expected behavior? The object would be correctly bound to the observable array item's observable property What went wrong? Only the string value for the object is bound. This is minor inconvenience as it seems to work when clicking on the typeahead control and selecting the item again. Did this work before? Yes Whatever version was public before this last release Chrome version: 56.0.2924.87 Channel: stable OS Version: 10.0 Flash Version: This works fine in IE and Firefox, so assuming it's some behavior introduced with the latest chrome build.
,
Feb 10 2017
,
Feb 10 2017
,
Feb 10 2017
Here's a trimmed down reproduction of what I'm experiencing - let me know if you need me to clarify anything: https://jsfiddle.net/jonlejon/o57dcLmt/ I've already written some code to work around this - but it should be noted that this works fine in IE and Firefox, as well as the previous version of Chrome. Thanks! Jon
,
Feb 10 2017
,
Feb 13 2017
Able to reproduce the issue on windows-7, Mac 10.12.2 and Linux Ubuntu-14.04 using chrome stable version 56.0.2924.87 and canary 58.0.3010.0 This is regression issue broken in M56.Please find the bisect information as below Narrow Bisect:: =============== Good :56.0.2916.0 -- (build revision 431463) Bad:: 56.0.2917.0 -- (build revision 431726) ChangeLog: ================ https://chromium.googlesource.com/chromium/src/+log/6d47d44ba4c0ba026223adb94d7f236fbc5efa22..ec8e431e9a0f80ace76368ce7edce006f3d409f2 Review-Url: https://codereview.chromium.org/2495583002 rsleevi@ could you please look into this issue if it is related to your change,else please help us in finding the appropriate owner for this issue. Thanks,
,
Feb 13 2017
There is no way it can be related to the aforementioned CL. Assigning back for bisect.
,
Feb 14 2017
After re-bisecting the issue, Please find the bisect information as below Narrow Bisect:: =============== Good :56.0.2913.0 -- (build revision 430459) Bad:: 56.0.2914.0 -- (build revision 430837) ChangeLog: https://chromium.googlesource.com/chromium/src/+log/5b5a21061a6aa8be7cc3b8b6aafa56256bb91e60..e91b6459cf18e90f2766a68a2487701610213be4 Review-Url: https://codereview.chromium.org/2467263002 tkent@ could you please look into this issue if it is related to your change,else please help us in finding the appropriate owner for this issue. Thanks.
,
Feb 14 2017
My CL looks to related to this issue. I'll take a look.
,
Feb 15 2017
It seems ko.bindingHandlers.securitytypeahead.update() is called too many times by an additional 'change' event on <input> blur. > https://jsfiddle.net/jonlejon/o57dcLmt/ This fiddle has a problem with Firefox too with the following step: 1. Focus on Security field 2. Type 'm', TAB, TAB
,
Feb 21 2017
My conclusion is Google Chrome works as intended, and this is due to a site bug.
Since Google Chrome 56, 'change' event behavior is identical with Firefox.
Example:
<input value="" autofocus>
<script>
var i = document.querySelector('input');
i.addEventListener('change', function() { alert('change'); });
i.oninput = function() {
if (i.value == 'm')
i.value = 'Macy\'s Inc';
}
</script>
In this example, if you type 'm' TAB, both of Firefox and Chrome 56 dispatch 'change' event. Chrome 55 didn't.
https://jsfiddle.net/jonlejon/o57dcLmt/ has the code specific to Firefox. Even if isFirefox=true with Chrome 56, Chrome still shows the red error message. This difference between Firefox and Chrome 56 is due to a bug of Firefox. The tickerSelector INPUT element is removed from the document tree when a user selects a company name from the completion box. Then, Chrome correctly dispatches 'blur' and 'change' events though Firefox doesn't.
|
|||||||||
►
Sign in to add a comment |
|||||||||
Comment 1 by kochi@chromium.org
, Feb 10 2017