如何限制数字字段在oracle apex中只输入数字

how to restrict number field to enter only numbers in oracle apex

我是 oracle apex 的新手。目前我正在研究 oracle apex 5.0。我创建了一个类型为数字字段的项目。我想要这个字段来输入手机号码。所以,我使用了像“9999999999”这样的格式掩码。
现在的问题是,执行该应用程序后,我也可以输入字母。现在,我对其进行了验证,但我希望我的项目只接受数字作为输入。用户无法在其中添加任何字母。
我也试过,将 input type="tel" maxlength="10"input type="number" max="10" 这段代码放在我的 HTML Form Element Attributes 字段和 HTML Form Element CSS Classes 字段中,但它不起作用。

无论我在 HTML Form Element Attributes 中输入哪个查询都会导致问题,如图 Problem with HTML Form Element Attributes 所示。现在,正如您在该图中看到的那样,这次我添加了 <input type="tel" maxlength=10 pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}">声明,但遇到同样的问题。
现在我也尝试将该语句放入 HTML Form Element CSS Classes,这里没有出现该问题,但我仍然可以在其中添加字母。

请指导我如何操作。

最简单的选择是创建一个验证,其类型是项目是数字。你不需要任何额外的编码来做到这一点。

此外,如果 table 列的数据类型是 NUMBER,您将无法在其中插入任何数字,Oracle 不允许您这样做。

使用JavaScript监听onkeydown事件并检查键码。

如果键码是字母,则阻止它被插入到输入元素中。要查看键码列表,请检查 here

function validateNumber(event) {
  var keyCode = event.keyCode;
  var excludedKeys = [8, 37, 39, 46];

  if (!((keyCode >= 48 && keyCode <= 57) ||
      (keyCode >= 96 && keyCode <= 105) ||
      (excludedKeys.includes(keyCode)))) {
    console.log("alphabets are not allowed");
    event.preventDefault();

  }

  console.log("keycode: " + keyCode);
}
<form>

  <div>
    <label>Mobile Number</label>
    <input type="tel" placeholder="Enter Mobile no" onkeydown="return validateNumber(event)" required>
  </div>


</form>

工作fiddle

防止在具有多个输入项的页面的特定输入 ID 中输入 non-alphabetic 个字符。它对 Oracle Apex 开发人员很有用。

在页面的 HTML header 中像这样附加它:

<script type="text/javascript">
function validateNumber(event) {
  const activeElmnt = document.activeElement;  
  var keyCode = event.keyCode;
  var excludedKeys = [8, 37, 39, 46];
 
   if ( activeElmnt.id == "input id in HTML page"){
        if (!((keyCode >= 65 && keyCode <= 90) ||
            (keyCode >= 97 && keyCode <= 122) ||
            (excludedKeys.includes(keyCode)))) {
            console.log("alphabets are not allowed");
            event.preventDefault();

  }
}
  console.log("keycode: " + keyCode + "ActiveElemet: "+activeElmnt.id);
}
</script>

在页面的 HTML body 中像这样附加它:

onkeydown="validateNumber(event);"