阻止ONLY空格输入from文本字段

Blocking ONLY spaces from being entered into a from textfield

本文关键字:文本 字段 from 输入 ONLY 空格 阻止      更新时间:2024-06-07

我有一个文本字段,用户必须在其中输入自己的姓名。我遇到的问题是阻止用户只进入空间。我希望用户能够使用空格,但前提是他们有其他字符(abc、abc、1-9等)。如何阻止他们只输入空格?这可以通过按键向上或按键完成吗?

尝试下面这样的操作,它将限制起始处的空白

  ​$("#textareaid").on("keydown", function (e) {
  var len = $("#textareaid").val().length;
  if(len == 0)
      return e.which !== 32;
  });​​​​​

工作演示

更新

上述方法有一些限制,即当用户在文本区域输入一些字符,然后将光标移动到文本区域的第零个位置,然后尝试输入一个空格时,它将允许。下面的解决方案也克服了这一点。。

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 的工作示例