我需要在输入中拒绝初始空格(不在表单中),我有这样的代码:
<input id="customer-name" class="required no-spaces" minlength="3" />
这是我的javascript函数:
$(".no-spaces").on('keypress', function(e) {
if (e.which == 32) {
return false;
}
});
但是这不允许在输入的任何部分中使用空格。如何在任何文本之前做到这一点?
编辑:真实的是我正在使用输入进行自动完成,如果我允许初始空格,它将返回所有数据。
答案 0 :(得分:1)
事先验证字符串是否为空。
$(".no-spaces").on('keypress', function(e) {
if ($(this).val() == "" && e.which == 32) {
return false;
}
});
另外,检查this是为了防止用户选择整个文本,然后按空格this来检查光标是否确实在输入的开始处(感谢Barmar提及此具体案例)
答案 1 :(得分:1)
只需检查文本框中是否有另一个字符。
$(".no-spaces").on('keypress', function(e) {
if (e.which == 32 && ($this).val() == '') {
return false;
}
});
修改强>
我希望它可能有用。
$(".no-spaces").on('keypress', function(e) {
$(this).val(function(i, v) {
if (v[0] == ' ') {
return v.slice(1, v.length);
};
return v;
});
});
答案 2 :(得分:0)
$(".no-spaces").on('keypress', function(e) {
if (e.which == 32) {
$(this).val($(this).val().replace(/^\W*/, ''));
}
});
答案 3 :(得分:0)
这适合我。
$(".no-spaces").on('keypress', function(e) {
var val = $(this).val();
val_ltrim = ltrim(val);
$(this).val(val_ltrim);
});
问候。