在文本框中只允許輸入字母/數字的最簡單方法是什麼?我們使用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