Oracle Apex:如何限制表单中的数字字段仅允许数字?

问题描述 投票:0回答:5

我的表单中有一个项目是数字字段,我想以某种方式确保该字段只接受数字。如果用户输入字母,我希望字段拒绝它。

我已经尝试过验证,但没有成功,我是否可以通过使用 javascript 代码或“pl/sql 代码”的动态操作来实现这一点?

javascript jquery oracle plsql oracle-apex-5
5个回答
2
投票

除了将其类型设置为数字字段之外,您绝对不需要做任何事情。

是的,您可以在其中“键入”任何内容,但 Oracle 不会“存储”除数字之外的任何内容。它将引发“字段名称必须是数字”错误并停止。 你为什么要重新发明轮子?

如果必须,请尝试对该项目进行动态操作(我们称之为

P13_DEPTNO)


当事件发生时:按键

  • 选择类型:项目

  • 项目:P13_DEPTNO

  • 真实操作:执行 PL/SQL 代码(带有“要提交的项目”:P13_DEPTNO):

  • begin if not regexp_like(:P13_DEPTNO, '^\d+$') then raise_application_error(-20000, 'Digits only'); end if; end;
  • 
    
  • 如果有人需要答案......

1
投票

function setInputFilter(textbox, inputFilter) { ["input", "keydown", "keyup", "mousedown", "mouseup", "select", "contextmenu", "drop"].forEach(function(event) { textbox.addEventListener(event, function() { if (inputFilter(this.value)) { this.oldValue = this.value; this.oldSelectionStart = this.selectionStart; this.oldSelectionEnd = this.selectionEnd; } else if (this.hasOwnProperty("oldValue")) { this.value = this.oldValue; this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd); } else { this.value = ""; } }); }); }

然后进入你想要限制为数字的页面项目,右键单击,添加动态动作,当:事件:按键,选择类型:项目,项目(你选择的项目),添加一个真正的动作...和让它执行 JS 代码,然后输入此代码...将页面项目替换为您的页面项目名称...
setInputFilter(document.getElementById("PXX_XXXX"), function(value) {
  return /^-?\d*$/.test(value); });

它只会让您在项目中输入数字。


有时您确实需要阻止用户插入除数字之外的任何其他内容。 特别是如果该字段用于计算。所以你可以使用这个

https://www.foxinfotech.in/2020/02/oracle-apex-allow-only-integer-value-using-jquery.html

0
投票

我为此用例创建了一篇博客文章。请参考以下链接


0
投票
https://akilramesh.blogspot.com/2021/10/allow-only-numbersdecimal-in-numbertext.html

您可以通过使用

oninput 和模式匹配

0
投票

<input type="text" id="numericInput" name="numericInput" oninput="this.value=this.value.replace(/[^0-9]/g,'');"> 因此,将

oninput="this.value=this.value.replace(/[^0-9]/g,'');"
放入高级-->项目的自定义属性中。

完成!!

    

© www.soinside.com 2019 - 2024. All rights reserved.