Ключ возврата не работает в течение <textarea> - PullRequest
5 голосов
/ 25 марта 2011

У меня проблема с текстовой областью, определенной на странице asp.net. Текстовая область заполняется на внутреннем конце текстом, читаемым непосредственно из базы данных mssql.

<div id="emailForm" runat="server" style="display:inline;">
  <textarea name="Body" id="Body" rows="20" cols="20">
     text in here
  <textarea>
</div>

Для div emailForm применяется следующий CSS:

padding: 5px;
width: 750px;
font-family: Lucida Sans, Verdana, Arial, Helvetica, sans-serif;
font-size: 0.9em;
margin: 0px 0px 10px 0px;
border: 2px solid #ccc;

и самой текстовой области:

height: 360px;

Некоторые пользователи сообщают, что, хотя они могут редактировать текст в текстовой области, они не могут получить ключ возврата для работы. Новые строки не могут быть добавлены?

Я искал в сети, но не могу найти пример этого. Если у кого-то есть какие-нибудь яркие идеи, я хотел бы услышать. Спасибо.

Ответы [ 5 ]

8 голосов
/ 29 октября 2014

Чтобы добавить к ответу Кристоффера, если вы столкнулись с той же проблемой, вы можете решить ее, заменив следующий код:

$(window).keydown(function(event){
    if(event.keyCode == 13) {
      event.preventDefault();
      return false;
    }
  });

следующим:

$(window).keydown(function(event){
    if((event.which== 13) && ($(event.target)[0]!=$("textarea")[0])) {
      event.preventDefault();
      return false;
    }
  });

это позволиттекстовое поле для ввода (новая строка), все еще не позволяя ввести ключ для остальных.

6 голосов
/ 09 ноября 2012

Была такая же проблема, но обнаружил, что это потому, что у меня был .preventDefault () в форме - изначально, чтобы запретить ввод для отправки формы.

this.$el.keypress(function(e){
    if(e.which === 13){
        e.preventDefault();
    }
}

13 - код нажатия клавиши для ввода

3 голосов
/ 26 апреля 2015

В моем случае проблема была связана с использованием White-Space: нормальный. Когда я удалил это, проблема ушла.

3 голосов
/ 25 марта 2011

Я никогда не слышал ничего подобного раньше, но я думаю, что это связано с display:inline;

Это не должно быть допустимым, когда элемент содержит что-то вроде текстовой области.1004 *

Я бы предложил изменить его на display:inline-block;.Этого может быть достаточно, чтобы это исправить.Но в любом случае это определенно правильный тип отображения того, что вы делаете.

2 голосов
/ 25 марта 2011

Ваш код правильный, кроме закрывающего тега текстовой области:

</textarea>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...