我的代码没有空格。至少我认为在注册用户名中没有空格...现在看着它就是每一个键!有人可以帮助我只创造空间吗?
(function($){
$(function(){
$('#username_reg').keyup(function(){
str = $(this).val(),
str = str.replace(/\s/g,''),
$(this).val(str),
alert('No space are allowed in usernames');
});
});
})(jQuery);
我刚刚尝试了这段代码,但没有用:/
$("input#username_reg").on("keydown", function (e) {
return e.which !== 32;
});
答案 0 :(得分:5)
我相信以下代码可以满足您的需求:
jQuery(function($){
$('#username_reg').keyup(function(e){
if (e.which === 32) {
alert('No space are allowed in usernames');
var str = $(this).val();
str = str.replace(/\s/g,'');
$(this).val(str);
}
}).blur(function() {
var str = $(this).val();
str = str.replace(/\s/g,'');
$(this).val(str);
});
});
也就是说,在keyup上,如果键是空格,则显示带有消息的警报并删除空格。但是,在模糊时删除可能在该字段中的任何空格 - 因为用户可以在不使用键盘的情况下复制/粘贴或拖动。
编辑:如果是我的代码,我可能会完全删除警报 - 我只是通过调用向下的<{em>}上的event.preventDefault()
来阻止空格键入,仍然会删除模糊处的空格如果是复制/粘贴。
$('#username_reg').keydown(function(e){
if (e.which === 32) {
e.preventDefault();
}
}).blur(function() {
// for variety's sake here's another way to remove the spaces:
$(this).val(function(i,oldVal){ return oldVal.replace(/\s/g,''); });
});