我有文本框,我需要在其中进行验证,如果文本框为空,它不应该允许空格。如果文本框中有任何值,则只有它应该允许空格。我正在尝试下面的代码,但不起作用
var letters = /^[0-9a-zA-Z]+$/;
$("#input1").on("blur ", function() {
function alphanumeric(username) {
if (username.value.match(letters)) {
return true;
} else {
$('#input1').on('keypress', function(e) {
if (e.which == 32)
return false;
});
return false;
}
}
})
如果你使用form,你不需要任何JavaScript
<form action='/'>
<input pattern="s*S+.*" title="space only is not allowed" required/>
<input type="submit">
</form>
为什么不直接修剪呢?
username.trim()
之后,您可以返回匹配结果。
在 blur
事件上添加一个函数,该函数将修剪将删除前后空格的值。如果该值为空,则会导致''
。
$("#input1").on("blur", function () {
if($(this).val().trim() === ''){
alert('empty value');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id='input1' />
你的正则表达式似乎是错误的。您不允许使用空格字符。
试试这个:/S/
S
是任何非空格字符。
如果你想从一个角色开始,它会变成/^S/
。
^
是当您要从以下字符
开始时 $
是当您想按前一个字符
你可以这样做:
$(function() {
$('#input1').on('keypress', function(e) {
if ($(this).val() == "")
if (e.which == 32)
return false;
});
});
在线演示 (jsFiddle(