Создайте <br /> при нажатии Enter - PullRequest
3 голосов
/ 26 ноября 2011

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

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

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

Ответы [ 3 ]

9 голосов
/ 26 ноября 2011

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

2 голосов
/ 26 ноября 2011
<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>
1 голос
/ 26 ноября 2011

Вы можете сделать это следующим образом:

function createBr(e) {


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

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

...