SAP MDK问题限制简单属性OnValueChange事件中的字符数

2020-08-15 05:08发布

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

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


专家们,

我要求在"简单属性"控件中输入的字符数不能超过5个。

在OnValueChange事件中,我使用以下代码添加了一条规则。

 var上下文;
 导出默认功能InspectionShortTextValidation(context){
//使检查短文字不超过5个字符
 var inspectionShortTextValue = context.getValue();
 var maxLength = 5;
 如果(inspectionShortTextValue.length> 5){
 var trimmedValue = inspectionShortTextValue.substring(0,maxLength);
 context.setValue(trimmedValue);
 }
 }
 

尽管有效,但似乎在某些情况下不会触发事件。

例如,当我键入" 123456"时,它将触发事件并将字符串正确更改为" 12345",这将导致事件再次触发,因为虽然不是用户输入,但代码中的值已更改 。 但是,当我再次尝试添加" 6"时,由于某种原因该事件未触发,并且将" 123456"保留为有效输入。 我需要进行其他更改才能触发该事件。

我如何避免这种情况。 我做的方式错了吗? 还是有办法确定更改是由用户输入还是由代码引起的?

谢谢。

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

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


专家们,

我要求在"简单属性"控件中输入的字符数不能超过5个。

在OnValueChange事件中,我使用以下代码添加了一条规则。

 var上下文;
 导出默认功能InspectionShortTextValidation(context){
//使检查短文字不超过5个字符
 var inspectionShortTextValue = context.getValue();
 var maxLength = 5;
 如果(inspectionShortTextValue.length> 5){
 var trimmedValue = inspectionShortTextValue.substring(0,maxLength);
 context.setValue(trimmedValue);
 }
 }
 

尽管有效,但似乎在某些情况下不会触发事件。

例如,当我键入" 123456"时,它将触发事件并将字符串正确更改为" 12345",这将导致事件再次触发,因为虽然不是用户输入,但代码中的值已更改 。 但是,当我再次尝试添加" 6"时,由于某种原因该事件未触发,并且将" 123456"保留为有效输入。 我需要进行其他更改才能触发该事件。

我如何避免这种情况。 我做的方式错了吗? 还是有办法确定更改是由用户输入还是由代码引起的?

谢谢。

付费偷看设置
发送
4条回答
悠然的二货
1楼 · 2020-08-15 05:58.采纳回答

这似乎是一个错误,如果您尝试按照以下顺序进行操作,即12345、6、7等,那么它将起作用。 但是当您有12345、6、6时,第二次失败。 我们将向开发团队报告。

jovirus
2楼-- · 2020-08-15 05:46

谢谢 Ashish Jain 期待你的答复。 是的,您说的话似乎是正确的。

闻人可可
3楼-- · 2020-08-15 05:45

调用setValue将修剪后的值放回该字段时,您还可以指定第二个(可选)参数来指示 setValue 应该通知控件, 值已更改。

 context.setValue(trimmedValue,false); 
CJones
4楼-- · 2020-08-15 05:46

感谢您 Bill Froelich 。 通过添加false参数,我能够停止从代码触发事件。

一周热门 更多>