我有一个文本字段,用户必须输入他们的名字。我遇到的问题是阻止用户进入空间。我希望用户能够使用空格,但前提是他们有其他字符(abc,ABC,1-9等)。如何阻止他们进入空间?这可以在keyup或onkeypress上完成吗?
答案 0 :(得分:0)
尝试下面的内容,它会限制起始处的空白区域
$("#textareaid").on("keydown", function (e) {
var len = $("#textareaid").val().length;
if(len == 0)
return e.which !== 32;
});
正在使用 DEMO
<强>更新强>
上述方法存在一些限制,即当用户在textarea中输入一些字符然后将光标移动到文本区域的第零位置然后尝试输入空格然后它将允许。以下解决方案也克服了这一点。
<强> HTML 强>
<textarea id="text1"></textarea>
<强>的javascript 强>
$("#text1").on("keydown", function (e) {
var len = $("#text1").val().length;
if(len == 0)
{
return e.which !== 32;
}
else
{
var pos=$("#text1").getCursorPosition();
if(pos==0)
{
return e.which !== 32;
}
}
});
$("#text1").on("keyup", function (e) {
var pos=$("#text1").getCursorPosition();
if(pos==0)
{
var values =$("#text1").val();
if(values.charAt(0)==' ')
{
values=values.trim();
$("#text1").val(values);
}
return e.which !== 32;
}
});
(function ($, undefined) {
$.fn.getCursorPosition = function() {
var el = $(this).get(0);
var pos = 0;
if('selectionStart' in el) {
pos = el.selectionStart;
} else if('selection' in document) {
el.focus();
var Sel = document.selection.createRange();
var SelLength = document.selection.createRange().text.length;
Sel.moveStart('character', -el.value.length);
pos = Sel.text.length - SelLength;
}
return pos;
}
})(jQuery);
上述代码DEMO
的工作示例