首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在页面提交前清除Oracle-Apex项目中的无效输入?

如何在页面提交前清除Oracle-Apex项目中的无效输入?
EN

Stack Overflow用户
提问于 2017-07-13 13:42:31
回答 2查看 1.1K关注 0票数 0

我有一个页面项目P1_USERNAME,当用户输入一些文本时,我想在提交页面之前清除不允许的文本。

假设用户输入sra>{563<在输入完成后,文本应类似于sra,清除'a‘之后的所有输入,因为>被定义为无效。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-14 00:41:18

您希望使用动态Action - Change类型,该类型在字段更改后失去焦点时触发。然后,您将执行JavaScript代码以响应解析和替换文本的事件。Docs here

Change (change) -当控件失去输入焦点并且它的值在获得焦点后被修改时触发。支持的用户界面类型:台式机和jQuery移动智能手机。

指定当先前指定的事件发生且满足条件时执行的操作:

执行JavaScript代码-使您能够定义或调用特定于页面的自定义JavaScript代码,以在动态操作框架中使用。如果您正在定义仅特定于一个页面的JavaScript代码,则还可以使用新的页面级别属性函数和全局变量声明来定义它。这里定义的函数和变量随后可以从该操作中引用。

您需要所有这些客户端-因此解析和替换必须在您编写的JS函数中完成。

如果你想得到超级花哨,使用动态操作键按下并监视正在输入的字符。如果他们输入了无效字符,您可以弹出一条JS消息,防止他们键入更多错误字符: Key Press (keypress) -当按下键盘上的某个键时触发,导致输入文本。当您要捕获实际的文本输入时,请使用此事件。

票数 0
EN

Stack Overflow用户

发布于 2017-07-13 23:04:42

您可以使用提交后触发的计算,并使用PL/SQL表达式,如下所示:

代码语言:javascript
复制
case when instr(:P1_USERNAME,'>') > 0 
  then substr(:P1_USERNAME, 1, instr(:P1_USERNAME,'>')-1) 
  else :P1_USERNAME
  end

这将在提交之后但在其他处理之前触发。

如果您的计算需要更复杂,您可以将代码移动到包函数,并进行如下计算:

代码语言:javascript
复制
my_pkg.cleanup (:P1_USERNAME)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45072263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档