I want to add the <br/>
(newline) to text box when user clicks on the enter button.
How can I achieve it in jquery onkeyup
event. Can one show me the example or any good website implementing it.
Thank you
Santosh Linkha
Copied from here Caret position in textarea, in characters from the start See DEMO.
<script src="jquery.js"></script>
<script>
$(function ()
{
$('#txt').keyup(function (e){
if(e.keyCode == 13){
var curr = getCaret(this);
var val = $(this).val();
var end = val.length;
$(this).val( val.substr(0, curr) + '<br>' + val.substr(curr, end));
}
})
});
function getCaret(el) {
if (el.selectionStart) {
return el.selectionStart;
}
else if (document.selection) {
el.focus();
var r = document.selection.createRange();
if (r == null) {
return 0;
}
var re = el.createTextRange(),
rc = re.duplicate();
re.moveToBookmark(r.getBookmark());
rc.setEndPoint('EndToStart', re);
return rc.text.length;
}
return 0;
}
</script>
<div id="content">
<textarea id="txt" cols="50" rows="10"></textarea>
</div>
Well, i guess all text-editors (WYSIWYG) do it all the time.
Something along the lines of :
$('#some-field').keyup(function(e){
if (e.keyCode == '13') {
e.preventDefault();
$(this).append("<br />\n");
}
});
来源:https://stackoverflow.com/questions/5455104/adding-br-to-the-text-box-when-user-press-enter-key-in-jquery