我需要一个jquery函数,它只允许文本框上的字母和空格,并阻止用户键入数字和符号。
我的代码正在运行,但文本框中允许使用这些符号。
HTML :
<input id="inputTextBox" type="text" />
的jQuery :
$(document).ready(function(){
$("#inputTextBox").keypress(function(event){
var inputValue = event.which;
//if digits or not a space then don't let keypress work.
if((inputValue > 47 && inputValue < 58) && (inputValue != 32)){
event.preventDefault();
}
});
});
答案 0 :(得分:2)
只需使用正则表达式/[^a-zA-Z\s]/
来匹配任何不是字母或空格的内容。
$(document).ready(function() {
$(document).on("input change paste", "input", function() {
var newVal = $(this).val().replace(/[^a-zA-Z\s]/g, '');
$(this).val(newVal);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" value="" placeholder="Letters and spaces only!" />
答案 1 :(得分:1)
这是仅允许数值的代码,它不允许使用字符(字母)和空格:
$('input').keypress(function( e ) {
if((e.which === 32) || (e.which > 64 && e.which < 91) || (e.which > 96 && e.which < 123))
return false;
}); code here
答案 2 :(得分:0)
检查您要允许的字符:
$("#inputTextBox").keypress(function(event){
var inputValue = event.which;
//if digits or not a space then don't let keypress work.
if((inputValue > 64 && inputValue < 91) // uppercase
|| (inputValue > 96 && inputValue < 123) // lowercase
|| inputValue == 32) { // space
return;
}
event.preventDefault();
});
答案 3 :(得分:0)
尝试使用正则表达式。 这个只允许空格和字母表。
它还会显示跨度错误。你需要用你喜欢的消息来做到这一点。如果你取消注释第7行。
<script type="text/javascript">
$(function () {
$("#inputTextBox").keypress(function(event){
var isValid = false;
var regex = /^[a-zA-Z ]*$/;
isValid = regex.test($("[id=inputTextBox]").val());
// $("#spnError").css("display", !isValid ? "block" : "none");
return isValid;
});
});
</script>
&#13;