Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

inputItem 更新完重叠之后 中文输入 onchange 事件不触发 #291

Closed
Zwei-J opened this issue Feb 22, 2019 · 21 comments
Closed

inputItem 更新完重叠之后 中文输入 onchange 事件不触发 #291

Zwei-J opened this issue Feb 22, 2019 · 21 comments
Assignees

Comments

@Zwei-J
Copy link

Zwei-J commented Feb 22, 2019

<InputItem [clear]="true"
[value]="value"
[placeholder]="'请输入'"
(onChange)="valueChange($event)"

进入焦点和移出焦点都不触发onChange事件, 反而输入内容后删除内容会触发。

@Jaden9527
Copy link

进入焦点和移出焦点 应该用 onFocus 事件
内容改变 用 onChange 事件

@Zwei-J
Copy link
Author

Zwei-J commented Feb 22, 2019

进入焦点和移出焦点 应该用 onFocus 事件
内容改变 用 onChange 事件

这个我知道
我的意思是我输入的时候要触发onChange事件去改变value
而我输入内容的时候onChange不触发

@Jaden9527
Copy link

我这个知道
我的意思的英文我输入侧的时候要触发的onChange事件去改变值
而我输入内容的时候的onChange不触发

我试了一下 输入内容时 onChange 事件会实时触发的

@Zwei-J
Copy link
Author

Zwei-J commented Feb 22, 2019

我这个知道
我的意思的英文我输入侧的时候要触发的onChange事件去改变值
而我输入内容的时候的onChange不触发

我试了一下 输入内容时 onChange 事件会实时触发

@Zwei-J Zwei-J closed this as completed Feb 22, 2019
@Zwei-J
Copy link
Author

Zwei-J commented Feb 22, 2019

我这个知道
我的意思的英文我输入侧的时候要触发的onChange事件去改变值
而我输入内容的时候的onChange不触发

我试了一下 输入内容时 onChange 事件会实时触发

我更新版本试一下

@Zwei-J
Copy link
Author

Zwei-J commented Feb 22, 2019

我这个知道
我的意思的英文我输入侧的时候要触发的onChange事件去改变值
而我输入内容的时候的onChange不触发

我试了一下 输入内容时 onChange 事件会实时触发的

<InputItem [clear]="true"
[value]="value"
[placeholder]="'请输入'"
(onChange)="valueChange($event)"

你这样试一下?

@Jaden9527
Copy link

<InputItem [clear]="true"
[value]="value"
[placeholder]="'请输入'"
(onChange)="valueChange($event)

试了,没毛病啊

@Zwei-J
Copy link
Author

Zwei-J commented Feb 22, 2019

<InputItem [clear]="true"
[value]="value"
[placeholder]="'请输入'"
(onChange)="valueChange($event)

试了,没毛病啊

我用0.11.2那个版本也是没问题的 可是升级到了0.11.4+ 就有问题
现在把我整懵了 我都不知道是你们那边更新的问题 还是我这边自己的问题

@Jaden9527
Copy link

我用0.11.2那个版本也是没问题的 可是升级到了0.11.4+ 就有问题
现在把我整懵了 我都不知道是你们那边更新的问题 还是我这边自己的问题

我用最新版本试了是正常的, 我不是官方的……

@Zwei-J Zwei-J reopened this Feb 22, 2019
@Zwei-J
Copy link
Author

Zwei-J commented Feb 22, 2019

我用0.11.2那个版本也是没问题的可是升级到了0.11.4+就有问题
现在把我整懵了我都不知道是你们那边更新的问题还是我这边自己的问题

我用最新版本试了是正常的,我不是官方的......

我angular/cil 版本是 7.1.0的 这个有关系吗?

@nuonuoge
Copy link
Collaborator

源代码有问题和ng版本无关

@Zwei-J
Copy link
Author

Zwei-J commented Feb 22, 2019

源代码有问题和ng版本无关

不应该吧 在0.11.2版本同样的代码都没问题

@nuonuoge
Copy link
Collaborator

你去看下源码就知道了,当时为了解决ios中文输入的问题,导致了这个问题,不过不同浏览器反应不同,主要还是因为compositionStart compositionEnd 和ngmodelchange触发时机导致的

@shawn-zp
Copy link

在使用使用iOS真机测试,以及Chrome模拟手机中。
使用中文输入法的话,确实不会触发(onChange),并且看日志打印,组件中的_value值也没有被更新。
使用非中文输入法是可以正常触发(onChange)的。

@sWhite01111
Copy link
Contributor

是的,当时为了解决ios中文输入时内容重复输入增加了compositionStart和compositionEnd方法,这个问题我会在跟一下,感谢大家反馈

@nuonuoge
Copy link
Collaborator

nuonuoge commented Feb 25, 2019

@sWhite01111 #293 我提了一个,我在firefox chrome opera一些浏览器测试了一下,compositionStart compositionEnd 和ngmodelchange在firefox chrome触发顺序是一致的,opera不会触发compositionStart和compositionEnd,木有测试safari,不知safari会如何表现

@sWhite01111
Copy link
Contributor

@sWhite01111 #293 我提了一个,我在firefox chrome opera一些浏览器测试了一下,compositionStart compositionEnd 和ngmodelchange在firefox chrome触发顺序是一致的,opera不会触发compositionStart和compositionEnd,木有测试safari,不知safari会如何表现

在ios9下输入中文会重复的问题会复现

@Zwei-J
Copy link
Author

Zwei-J commented Feb 25, 2019

@sWhite01111 #293 我提了一个,我在firefox chrome opera一些浏览器测试了一下,compositionStart compositionEnd 和ngmodelchange在firefox chrome触发顺序是一致的,opera不会触发compositionStart和compositionEnd,木有测试safari,不知safari会如何表现

在ios9下输入中文会重复的问题会复现

目前 有解决的方案吗? 或者是说 用另外一种事件去代替 onChange的触发呢?

@csk83
Copy link

csk83 commented Feb 27, 2019

如果ISO装了搜狗输入法,则不会,如果原生输入法,部分IOS确实会这样的问题。这个问题困扰几天了。

@Zwei-J
Copy link
Author

Zwei-J commented Feb 27, 2019

如果ISO装了搜狗输入法,则不会,如果原生输入法,部分IOS确实会这样的问题。这个问题困扰几天了。

对的 IOS原生的输入法也就只有低版本的才会 貌似ios11以上的机子 使用原生输入法都不会这样

@sWhite01111
Copy link
Contributor

如果ISO装了搜狗输入法,则不会,如果原生输入法,部分IOS确实会这样的问题。这个问题困扰几天了。

对的 IOS原生的输入法也就只有低版本的才会 貌似ios11以上的机子 使用原生输入法都不会这样

现在的解决方案是inputChange增加setTimeout,让compositionEnd触发在change之前,在ios9,chrome以及safari下测试时正常的,pr已提,大家可以多测试一下

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants