Создайте <br/">, когда вы нажмете Enter

64
7

Я создал форму textarea, в которой вы можете изменить свое описание, и, как и в моем предыдущем вопросе, я спросил, есть ли способ запретить теги. Но теперь есть ли способ, когда вы нажимаете Enter , что в текстовой области будет задан параметр <br />, чтобы пользователю не приходилось вводить <br /> каждый раз, когда они хотят разрыва строки?


Я думал о чем-то вроде, если он может найти места там, где ничего, но будет ли это работать? Я не знаком с событиями onpress... Или если он проверяет ввод после того, как пользователь нажал кнопку submit, а затем проверяет разрывы строк.


Я видел это на YouTube, на этом сайте и на многих других сайтах.

спросил(а) 2011-11-26T17:37:00+04:00 8 лет назад
3
Решение
96

В PHP вы можете использовать функцию nl2br(), чтобы заменить любые символы новой строки тегами <br />.

ответил(а) 2011-11-26T17:40:00+04:00 8 лет назад
Еще 2 ответа
44

<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>

ответил(а) 2011-11-26T17:41:00+04:00 8 лет назад
45

Вы можете сделать это как:



function createBr(e) {

if (e.keyCode == 13) {
document.createElement("BR");
//do what you want with it
}
}


Надеюсь, что это поможет

ответил(а) 2011-11-26T17:41:00+04:00 8 лет назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема