如何在页面提交前清除 Oracle-Apex 项目中的无效输入?
How to clear Invalid input in Oracle-Apex Item before page submit?
我有一个页面项目 P1_USERNAME,当用户输入一些文本时,我想在提交页面之前清除不允许的文本。
假设用户在输入完成后输入 sra>{563<,通过清除 'a' 之后的所有输入,文本应该看起来像 sra,因为 > 被定义为无效。
您可以使用在提交后触发的计算并使用 PL/SQL 表达式,例如:
case when instr(:P1_USERNAME,'>') > 0
then substr(:P1_USERNAME, 1, instr(:P1_USERNAME,'>')-1)
else :P1_USERNAME
end
这将在提交之后但在其他处理之前触发。
如果您的计算需要更复杂,您可以将代码移动到一个包函数中并使计算如下:
my_pkg.cleanup (:P1_USERNAME)
您想使用动态操作 - 更改类型,它在字段更改然后失去焦点时触发。然后,您将执行 JavaScript 代码以响应将解析和替换文本的事件。文档 here.
Change(改变)- 当控件失去输入焦点并且它的值在获得焦点后被修改时触发。支持的用户界面类型:桌面和 jQuery 移动智能手机。
指定当先前指定的事件发生并满足条件时执行的操作:
执行 JavaScript 代码 - 使您能够定义或调用自定义的、页面特定的 JavaScript 代码以在动态操作框架内使用。如果您正在定义特定于一页的 JavaScript 代码,您还可以使用新的页面级属性函数和全局变量声明来定义它。在此操作中随后可以引用此处定义的函数和变量。
您需要所有这些客户端 - 因此解析和替换必须在您编写的 JS 函数中完成。
如果您想变得超级花哨,请使用动态动作按键并监视正在输入的字符。如果他们输入无效字符,您可以弹出一条 JS 消息并防止他们输入更多错误字符: Key Press (keypress) - 当按下键盘上的某个键导致输入文本时触发。当您想要捕获实际的文本输入时使用此事件。
我有一个页面项目 P1_USERNAME,当用户输入一些文本时,我想在提交页面之前清除不允许的文本。
假设用户在输入完成后输入 sra>{563<,通过清除 'a' 之后的所有输入,文本应该看起来像 sra,因为 > 被定义为无效。
您可以使用在提交后触发的计算并使用 PL/SQL 表达式,例如:
case when instr(:P1_USERNAME,'>') > 0
then substr(:P1_USERNAME, 1, instr(:P1_USERNAME,'>')-1)
else :P1_USERNAME
end
这将在提交之后但在其他处理之前触发。
如果您的计算需要更复杂,您可以将代码移动到一个包函数中并使计算如下:
my_pkg.cleanup (:P1_USERNAME)
您想使用动态操作 - 更改类型,它在字段更改然后失去焦点时触发。然后,您将执行 JavaScript 代码以响应将解析和替换文本的事件。文档 here.
Change(改变)- 当控件失去输入焦点并且它的值在获得焦点后被修改时触发。支持的用户界面类型:桌面和 jQuery 移动智能手机。
指定当先前指定的事件发生并满足条件时执行的操作:
执行 JavaScript 代码 - 使您能够定义或调用自定义的、页面特定的 JavaScript 代码以在动态操作框架内使用。如果您正在定义特定于一页的 JavaScript 代码,您还可以使用新的页面级属性函数和全局变量声明来定义它。在此操作中随后可以引用此处定义的函数和变量。
您需要所有这些客户端 - 因此解析和替换必须在您编写的 JS 函数中完成。
如果您想变得超级花哨,请使用动态动作按键并监视正在输入的字符。如果他们输入无效字符,您可以弹出一条 JS 消息并防止他们输入更多错误字符: Key Press (keypress) - 当按下键盘上的某个键导致输入文本时触发。当您想要捕获实际的文本输入时使用此事件。