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

时间:2019-08-08 14:27:13

标签: javascript sapui5 sap-fiori

我正在使用SAP Fiori开发带有表单的应用程序。

输入值更改触发事件(从sap.m.InputBase借用的更改,因此在焦点更改或通过按Enter键触发事件)。事件为用户提供了一些信息。还有一个按钮可以将数据发送到后端。 但是在某些情况下,用户更改输入值并单击“发送”按钮,而不先按Enter也不更改操作前的焦点。 发生的情况是触发了更改事件,但阻止了发送事件,并且根本没有触发该事件。用户再次单击“保存”,现在将触发两次发送事件(重复)。

这是我面临的问题的演示: jsfiddle: https://jsfiddle.net/o2zLa534/1/

我希望输入更改事件将被触发,并且: 1)什么也不会发生,在点击发送后,只会触发一个发送事件,或者 2)发送事件将在更改事件完成后立即触发。

我知道问题出在哪里,但我找不到出路。 感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

问题出在警报上。 如果您检查小提琴,而不是使用警报,而是进行其他修改,它将按预期正常运行。此问题是由于警报本身引起的,不管怎么说,您不应该在ui5应用程序中使用警报。

https://jsfiddle.net/cbL9z6rh/6/

onInputChange: function(evt){
 evt.getSource().setValue("testing");
},
onSubmit: function(){
 alert("Submitted!");
},

如果现在将任何内容输入到输入中,然后按“发送”按钮,您将看到输入将更改为“正在测试”,并且将显示提交警报。