UI5 sap.m.Input更改事件在某些浏览器中会干扰sap.m.Button按下事件

2020-09-03 22:02发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)如果 sap.m.Input字段...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


如果 sap.m.Input字段的值已更改,则只要焦点离开该字段,就会触发 change 事件。 焦点离开该字段的一种方式是,如果用户单击 sap.m.Button 控件。 在这种情况下,我希望 Button 上的 press 事件与 Input 字段 change 事件一起触发( 如果"输入"字段中的值已更改)。

这正是我在Firefox [60.8.0esr(32位)]中看到的内容。 change 事件在 press 事件之前触发。

在Chrome [76.0.3809.100(正式版本)(64位)中,如果更改了 Input 字段值,则总是抑制(或阻止) press 事件 紧接之前。 换句话说,当我单击 Button 时,会看到 press 事件,但前提是还没有触发 change 事件。 如果第二次单击 Button 按钮,则会触发两次 press 事件。

在Edge [42.17134.1.0]中,我再次看到了不同的行为。 如果触发 change 事件,则会阻止 press 事件,但是当我再次单击 Button 时,我会收到 press 事件 一次(不是两次)。 请注意,这是Edge的发行版本,而不是新的Chromium驱动版本。

我创建了一个小提琴来演示此问题:

https://jsfiddle.net/mikeedoyle/1c2yhtez/

要测试,请在第一个输入字段中输入一个值。 将光标移到下一个输入字段。 在该字段中输入一个值,然后单击按钮。 再次单击该按钮。

我已明确放置UI5版本,以便轻松更改。 我在许多不同的版本中看到相同的行为。 它看起来像不是一个新错误。

我的问题看起来很像这个Stack Overflow帖子,没有引起太多关注:

更改事件会阻止其他事件触发

其他任何人以前都看过此问题吗? 我已经使用UI5超过4年了,而且从未遇到过类似的问题。 我应该在Open UI5 Github页面上打开问题吗?

5条回答
奄奄一息的小鱼
2020-09-03 22:34

对不起,

看来您找到了答案。 我认为我们无能为力,因为我们已经处理了浏览器事件,为您提供sap.m.Button的press语义事件。 按下鼠标毕竟不是完全按下。

此致

亚历山大·伊万诺夫(UI5)

一周热门 更多>