我在这里找到了以下代码:
How to validate html textbox not to allow special characters and space?
所以我编写了这段代码进行验证,但它没有用。
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.validate.min.js"></script>
<input type="text" name="txtUsername" id="txtUsername" data-validation="alphanumeric" data-validation-allowing="_" value="">
我是否应该编写任何脚本以禁止文本框中的特殊字符。
答案 0 :(得分:2)
这是HTML部分只需要一个ID
<input id="txtAlphaNumeric" type="text" />
现在是JQuery的主要逻辑:
$(document).ready(function(){
$('#txtAlphaNumeric').keydown(function (e) {
var k = e.which;
var ok = k >= 65 && k <= 90 || // A-Z
k >= 96 && k <= 105 || // a-z
k >= 35 && k <= 40 || // arrows
k == 8 || // Backspaces
k >= 48 && k <= 57; // 0-9
if (!ok){
e.preventDefault();
}
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="txtAlphaNumeric" type="text" />
&#13;
答案 1 :(得分:0)
实际上这允许在文本中使用!“£$%^&amp; *()符号。您需要稍微修改一下答案:
<!-- Allow only alphanumeric -->
$('#username').keydown(function (e) {
var k = e.which;
var ok = k >= 65 && k <= 90 || // A-Z
k >= 96 && k <= 105 || // a-z
k >= 35 && k <= 40 || // arrows
k == 8 || // Backspaces
(!e.shiftKey && k >= 48 && k <= 57); // 0-9
if (!ok){
e.preventDefault();
}
});
它会阻止数字的shift键。
答案 2 :(得分:0)
感谢@Steaton,但仍然允许一个特殊的charackter:€ 我解决了这个问题。
$("#username").keydown(function (e){
var k = e.keyCode || e.which;
var ok = k >= 65 && k <= 90 || // A-Z
k >= 96 && k <= 105 || // a-z
k >= 35 && k <= 40 || // arrows
k == 9 || //tab
k == 46 || //del
k == 8 || // backspaces
(!e.shiftKey && k >= 48 && k <= 57); // only 0-9 (ignore SHIFT options)
if(!ok || (e.ctrlKey && e.altKey)){
e.preventDefault();
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="username" type="text" class="validate" name="username">
&#13;
答案 3 :(得分:-1)
$(function () {
$('#txtNumeric').keydown(function (e) {
if (e.shiftKey || e.ctrlKey || e.altKey) {
e.preventDefault();
}
else {
var key = e.keyCode;
if (!((key == 8) || (key == 46) || (key >= 35 && key <= 40) || (key >= 65 && key <= 90) || (key >= 48 && key <= 57) || (key >= 96 && key <= 105))) {
e.preventDefault();
}
}
});
});
<input id="txtNumeric" type="text" />