我想只允许在文本中输入数值,如果用户输入字母字符,则应警告用户。 有关优化和简短的JavaScript代码的任何建议吗?
答案 0 :(得分:7)
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
来自here
答案 1 :(得分:5)
使用以下代码
function numericFilter(txb) {
txb.value = txb.value.replace(/[^\0-9]/ig, "");
}
在按键上调用
<input type="text" onKeyUp="numericFilter(this);" />
答案 2 :(得分:2)
这是一个阻止所有非数字输入进入文本字段的解决方案。
html
<input type="text" id="numbersOnly" />
javascript
var input = document.getElementById('numbersOnly');
input.onkeydown = function(e) {
var k = e.which;
/* numeric inputs can come from the keypad or the numeric row at the top */
if ( (k < 48 || k > 57) && (k < 96 || k > 105)) {
e.preventDefault();
return false;
}
};
答案 3 :(得分:2)
请注意,您还应该允许“系统”键
$(element).keydown(function (e) {
var code = (e.keyCode ? e.keyCode : e.which), value;
if (isSysKey(code) || code === 8 || code === 46) {
return true;
}
if (e.shiftKey || e.altKey || e.ctrlKey) {
return ;
}
if (code >= 48 && code <= 57) {
return true;
}
if (code >= 96 && code <= 105) {
return true;
}
return false;
});
function isSysKey(code) {
if (code === 40 || code === 38 ||
code === 13 || code === 39 || code === 27 ||
code === 35 ||
code === 36 || code === 37 || code === 38 ||
code === 16 || code === 17 || code === 18 ||
code === 20 || code === 37 || code === 9 ||
(code >= 112 && code <= 123)) {
return true;
}
return false;
}
答案 4 :(得分:2)
//在文本框中仅输入数值的解决方案
$('#num_of_emp').keyup(function () {
this.value = this.value.replace(/[^0-9.]/g,'');
});
用于输入框,例如:
<input type='text' name='number_of_employee' id='num_of_emp' />
答案 5 :(得分:1)
为了更安全,请使用:
$("#testInput").keypress(function(event){
而不是:
$("#testInput").keyup(function(event){
我希望这会对某人有所帮助。
答案 6 :(得分:0)
答案 7 :(得分:0)
此代码使用event
对象的.keyCode
属性来检查键入给定字段的字符。如果按下的键是一个数字,什么都不做;否则,如果是一封信,请提示“错误”。如果它不是这些东西,则返回false。
HTML:
<form>
<input type="text" id="txt" />
</form>
JS:
(function(a) {
a.onkeypress = function(e) {
if (e.keyCode >= 49 && e.keyCode <= 57) {}
else {
if (e.keyCode >= 97 && e.keyCode <= 122) {
alert('Error');
// return false;
} else return false;
}
};
})($('txt'));
function $(id) {
return document.getElementById(id);
}
请注意.keyCode
,.onkeypress
和.onkeydown
的{{1}}结果彼此不同。
答案 8 :(得分:0)
Javascript仅适用于文本框中的数字::
<input type="text" id="textBox" runat="server" class="form-control" onkeydown="return onlyNos(event)" tabindex="0" />
<!--Only Numeric value in Textbox Script -->
<script type="text/javascript">
function onlyNos(e, t) {
try {
if (window.event) {
var charCode = window.event.keyCode;
}
else if (e) {
var charCode = e.which;
}
else { return true; }
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}
catch (err) {
alert(err.Description);
}
}
</script>
<!--Only Numeric value in Textbox Script -->