在文本框中只允许输入字母/数字的最简单方法是什么?我们使用JS/jQuery,但不想使用验证插件?jquery/JS只允许在文本框中输入数字和字母
回答
您可以使用一个简单的正则表达式对表单提交以评估文本框的内容,显示错误并停止表单提交。从支票中取出一个功能,当文本框失去焦点时,您也可以应用它。经常这样做,你会发现你已经重新实现了验证插件。
$(function() {
$('form').submit(function() {
return validateTB($('#textbox'), true, $('#textboxError'));
});
$('#textbox').blur(function() {
validateTB($(this), true, $('#textboxError'));
});
function validateTB(tb,required,msg) {
var $tb = $(tb);
var re = '/^[a-z0-9]';
if (required) {
re += '+';
}
else {
re += '*';
}
re += '$/';
if ($tb.val().match(re) == null) {
$(msg).show();
return false;
}
$(msg).hide();
return true;
}
});
如果你不想使用插件 - 那么一些普通的旧JS验证呢?
我张贴有关这位在我的博客前一阵子 - >http://dotnetbutchering.blogspot.com/2009/04/definitive-javascript-validation-with.html
你会看到,我提出的解决方案的功能需要输入域ID和一个正则表达式(你将不得不拿出如果您只需要aplhanumeric,那么对于您的验证需求使用regEx应该非常简单),并根据验证的结果将控件的背景设置为绿色或红色。我知道这并不完美,但我认为这足以让你走了,你可以用它作为自己的起点。
我相信有mote优雅的解决方案使用jQuery或普通的JS,但沿着这些线的东西到目前为止一直工作得很好。
希望它有帮助。
我的解决办法是这样的:
jQuery('input[type="text"]').keyup(function() {
var raw_text = jQuery(this).val();
var return_text = raw_text.replace(/[^a-zA-Z0-9 _]/g,'');
jQuery(this).val(return_text);
});
每一个用户尝试输入不是数字,字母,空格等任何东西,或强调功能的时间返回与去除带状字符的字符串。
由于tvanfossen的片段只触发了对提交和伊恩的不漂亮,因为它可以,我只是想增加一个更简洁的方法:
HTML:
<input id="myinput" type="text">
JS(jQuery的):
$('#myinput').keypress(function (e) {
var regex = new RegExp("^[a-zA-Z0-9]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str)) {
return true;
}
e.preventDefault();
return false;
});
我在这个方法中发现问题,当我复制并粘贴这些章程输入字段'#$%^&*()'它不会阻止这些章程 – 2015-01-31 17:32:41
这是一个简单的解决方案,将检查KEYUP输入和去除不想要的字符作为用户类型:
<input class="usr" type="text id="whatever" name="whatever" />
$(".usr").keyup(function() {
var n = $(this).val();
if (n.match("^[a-zA-Z0-9 ]*$") == null) {
$(this).val(n.slice(0,-1));
}
});
正则表达式可以根据规范进行修改。
在伊恩的回答变种是一个小更轻便,更短:
function onlyAllowAlphanumeric() {
this.value = this.value.replace(/[^a-zA-Z0-9 _]/g, '');
});
$('input[type="text"]').keyup(onlyAllowAlphanumeric);
- 1. 只允许输入字母
- 2. UITextField只允许英文字母输入
- 3. 文本框只允许使用字母
- 4. 只允许在asp.net中的文本框中输入字母字符
- 5. VB:只允许输入数字(不是字母)进入文本框
- 6. 只允许在文本框中输入数字
- 7. 只允许在WPF文本框中输入数字
- 8. 允许只有字母数字在文本框使用jQuery
- 9. 只允许在文本框中输入数字和特殊字符( - )
- 10. 如何在TInputQueryWizardPage编辑框中只允许输入字母数字字符?
- 11. 输入允许数字和只有一个字母/符号
- 12. 用户输入验证只有数字和字母允许
- 13. AngularJS问题只允许将数字输入到文本框中
- 14. 如何只允许输入字母?
- 15. 只允许数字输入
- 16. 只允许在文本框C#数字
- 17. 只允许在文本框中使用字母,数字和正斜杠的JQuery
- 18. 如何在Outlook VBA输入框中只允许输入数字
- 19. 输入文本框字段只允许字符不允许数字,但允许空间?
- 20. 只允许范围内的数字输入到文本框
- 21. 文本框掩码只允许数字
- 22. HTML文本输入只允许像密码输入那样的字母,数字和特殊字符?
- 23. 只有数字,不允许使用字母 - 用户输入
- 24. 只允许在英文字母和数字在php
- 25. 只允许字母数字字符
- 26. 允许文本字段只输入数字[Java]
- 27. 文本框只有字母,数字和 -
- 28. 只允许字母和特殊字符
- 29. 只允许字母数字值
- 30. 只允许在Yii2中输入[a-z]字母的规则
+1 - >不错片断 – JohnIdol 2010-01-03 19:49:57