When typing text into a textarea and it becomes wider than the area, the text is wrapped onto the next line. Is there a way I can programmatically determine when this happens?
There's no actual event fired when the wrapping occurs, but you can hack a solution if you know the width of the textarea.
Listen for the change event on the text area and transfer the text into a div that wraps to it's content;
<div class="textwidth"></div>
With style:
.textwidth {
  position: absolute;
  visibility: hidden;
  height: auto;
  width: auto;
}
Calculate the width of the div with the text content and compare that to the constant width of the textarea:
$('textarea').on('keyup', function() {
  var lastLine = $(this).val().split('/n').pop();
  var width = $('.textwidth').text(lastLine).width(); 
  if ( width >  $('textarea').width() ) {
    // fire wrap event
  }
});
Here's a bit of a shoddy fiddle that should give you some idea how to continue: http://jsfiddle.net/cXbAh/1/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With