Bob
Bob

Reputation: 1065

How to remove all spaces when pasting using jQuery or JavaScript instantly?

When a user pastes some text into a field I want to be able to remove all spaces instantly.

<input type="text" class="white-space-is-dead" value="dor  on" />

$('.white-space-is-dead').change(function() {   
    $(this).val($(this).val().replace(/\s/g,""));
});

http://jsfiddle.net/U3CRg/22/

This code from another example works. But doesn't update until a user clicks on something besides the textbox. I am using MVC with jQuery/JavaScript.

Upvotes: 3

Views: 2340

Answers (2)

mathielo
mathielo

Reputation: 6795

Switch the event change for input, which will trigger whenever something is inputted into the field, even if text is being pasted.

$('.white-space-is-dead').on('input', function() {   
    $(this).val($(this).val().replace(/\s/g,""));
});

Take a look at jQuery Events to understand better what options you have.

Edit: updated the answer based on OP's comment and what I found on this answer.

Upvotes: 3

Allen Tellez
Allen Tellez

Reputation: 1211

The regex wasnt doing what you wanted. This works but does not fire until the text input loses focus.

$('.white-space-is-dead').change(function() {   
    $(this).val($(this).val().replace(/ /g,''));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" class="white-space-is-dead" value="dor  on" />

Upvotes: 1

Related Questions