Search code examples
javascriptjqueryeventskeypresskeydown

How to disable/remove only first space on input field?


Good morning everybody!

I have a case, when I should prevent users to entering space as a first character on input field.

I have a demo here: http://jsbin.com/foyetolo/2/edit

It works only when you hit spacebar for first time. When you start typing other characters and select whole text in input (ctrl+a) and then hit the space bar it adds the space in the beginning of input field.

So, how to check if on keypress/keydown if the first character will be a space, return false and not allow it to type the space as a first character?


Solution

  • You can do this by checking if key is space and selection start is 0 as below:

    $(function() {
      $('body').on('keydown', '#test', function(e) {
        console.log(this.value);
        if (e.which === 32 &&  e.target.selectionStart === 0) {
          return false;
        }  
      });
    });
    

    Demo Link