我使用以下JQuery函数来限制用户在文本框中写入数值。代码工作正常,但问题是它还限制用户使用其他字符,如句号(。),逗号(,),$,@和其他符号..它也不允许用户使用复制和过去。我只想限制用户编写数字值或数字,但应允许用户使用其他字符。
$(function() {
$('.txtOnly').keydown(function(e) {
if (e.shiftKey || e.ctrlKey || e.altKey) {
e.preventDefault();
} else {
var key = e.keyCode;
if (!((key == 8) || (key == 32) || (key == 46) || (key >= 35 && key <= 40) || (key >= 65 && key <= 90))) {
e.preventDefault();
}
}
});
});
答案 0 :(得分:6)
希望这会有所帮助:
<!DOCTYPE html>
<html lang="en">
<head>
<script src="jquery-1.12.2.js"></script>
</head>
<body>
<input class="txtOnly" id="txtOnly" name="txtOnly" type="text" />
<script>
$( document ).ready(function() {
$( ".txtOnly" ).keypress(function(e) {
var key = e.keyCode;
if (key >= 48 && key <= 57) {
e.preventDefault();
}
});
});
</script>
</body>
</html>
答案 1 :(得分:1)
您可以使用正则表达式/[^a-z]/g
$('.txtOnly').bind('keyup blur',function(){
var node = $(this);
node.val(node.val().replace(/[^a-z]/g,'') ); }
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="lorem" class="txtOnly">
答案 2 :(得分:1)
$('.txtOnly').keypress(function (e) {
var regex = new RegExp("^[a-zA-Z]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str)) {
return true;
}
else
{
e.preventDefault();
$('.error').show();
$('.error').text('Please Enter Alphabate');
return false;
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="error"></p>
<input class="txtOnly" type="text">
&#13;
答案 3 :(得分:0)
您可以使用以下代码段来阻止用户输入数字输入。它将检查每个keydown
事件,并在提供数值时阻止任何后续操作。
$('.txtOnly').bind('keydown', function(event) {
var key = event.which;
if (key >=48 && key <= 57) {
event.preventDefault();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="txtOnly">