问题
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
回答1:
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.
回答2:
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