【发布时间】:2011-07-24 05:30:38
【问题描述】:
当用户点击回车按钮时,我想将<br/>(换行符)添加到文本框中。
如何在 jquery onkeyup 事件中实现它。谁能给我看看这个例子或任何实现它的好网站。
谢谢
【问题讨论】:
-
这可能是什么东西:stackoverflow.com/questions/2157739/… ?
当用户点击回车按钮时,我想将<br/>(换行符)添加到文本框中。
如何在 jquery onkeyup 事件中实现它。谁能给我看看这个例子或任何实现它的好网站。
谢谢
【问题讨论】:
从这里复制Caret position in textarea, in characters from the start 请参阅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>
好吧,我猜所有的文本编辑器(所见即所得)一直都在这样做。
【讨论】:
hidden 元素来存储值。这些家伙很聪明。
类似于:
$('#some-field').keyup(function(e){
if (e.keyCode == '13') {
e.preventDefault();
$(this).append("<br />\n");
}
});
【讨论】: