При нажатии клавиши enter текст перемещается в новое поле ввода

#javascript #angularjs #dom-events #keyboard-events

#javascript #angularjs #dom-события #клавиатура-события

Вопрос:

У меня сложное требование

Определите keypress ENTER клавишу of внутри текстового поля на основе этих условий:

  1. Если курсор находится в конце предложения, он должен добавить новое текстовое поле в следующей строке.
  2. Если курсор находится в середине предложения, он должен переместить текст с его позиции до конца предложения в новое поле ввода в следующей строке.

Я могу добавить новое поле ввода в следующую строку следующим образом:

 if $event.keyCode == ENTER_KEY  //13
  newRow = initializeNewRowObject()
  $scope.list.splice(index, 0, newRow)
  setFocusOnNewRow(index)
  

Есть идеи, как достичь цели?

Ответ №1:

Я не уверен, что создание нового текстового поля является лучшим решением для функций, которые вы хотите иметь, а форматированный текстовый редактор — это то, что вы только что описали.

Есть несколько хороших вариантов — один, который приходит на ум, это DraftJS, но есть и другие альтернативы, не связанные с реакцией — см. Редактор