如何限制数字字段在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);"
我是 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);"