【发布时间】:2018-10-07 21:34:40
【问题描述】:
Degree <input type="number" name="Degree" min="0" step="1"/ size="4" id="Degreelat">
希望这个度数在 javascript 中调用我的函数之前只采用正整数而不接受十进制值。
【问题讨论】:
标签: javascript
Degree <input type="number" name="Degree" min="0" step="1"/ size="4" id="Degreelat">
希望这个度数在 javascript 中调用我的函数之前只采用正整数而不接受十进制值。
【问题讨论】:
标签: javascript
仅对正整数使用 Jquery
//for allow only positive integers
$(document).ready(function(){
$("#returnRetailQuantity").keydown(function (event) {
if (event.shiftKey) {
event.preventDefault();
}
if (event.keyCode == 46 || event.keyCode == 8) {
}
else {
if (event.keyCode < 95) {
if (event.keyCode < 48 || event.keyCode > 57) {
event.preventDefault();
}
}
else {
if (event.keyCode < 96 || event.keyCode > 105) {
event.preventDefault();
}
}
}
});
});
【讨论】:
<input type="number" name="Degree" min="0" step="1"/ size="4" id="Degreelat" onkeydown="return ( event.ctrlKey || event.altKey
|| (47<event.keyCode && event.keyCode<58 && event.shiftKey==false)
|| (95<event.keyCode && event.keyCode<106)
|| (event.keyCode==8) || (event.keyCode==9)
|| (event.keyCode>34 && event.keyCode<40)
|| (event.keyCode==46) )">
您可以通过验证和禁用各种导航和热键来验证 onKeyDown 事件 javascript...例如逗号、点、字母...
【讨论】:
一个简单的解决方案是白名单数字键代码(使用 Jquery):
$(document).ready(function() {
$("#Deareelat").keydown(function (e) {
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
});
});
但您可能还想允许其他一些键(例如退格)这里是键代码列表:
https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
【讨论】:
验证输入是您的 JavaScript 函数的职责。要么你有一个显式调用这个函数的按钮,要么有一个触发函数的 onblur 或 onchange 事件,我们来看看函数本身:
function checkvalue(){
var value=document.getElementById('Degreelat').value;
var val=parseInt(value,10);
if (val!=value) return false;
if (val<=0) return false;
}
如果要检查多个字段,可以抽象一个辅助函数,用它来指示哪个字段无效:
function valint(id){
var value=document.getElementById(id).value;
if (!parseInt(value,10)!=value) {
document.getElementById(id).style.background='red';
return false;
}
document.getElementById(id).style.background='transparent';
return true;
}
function checkvalues(){
var valid=true;
if (!valint('Degreelat')) valid=false;
if (!valint('Degreelng')) valid=false;
return valid;
}
【讨论】: