Ionic 2 - 提交后聚焦textarea以防止虚拟键盘消失

时间:2017-06-21 03:48:33

标签: angular ionic2

我的应用程序的一部分是一个聊天应用程序,每当我点击提交"提交"按钮,textarea丢失输入,虚拟键盘关闭。我在提交表单后立即通过重新聚焦textarea来尝试解决这个问题。问题是,当我在浏览器中使用Ionic时,这种方法很好,但是只要我在iOS设备上测试它,它就会拒绝重新聚焦在textarea上。这是我的HTML模板中的代码:

<div class="create-message-block">
    <form [formGroup]="addMessageForm" novalidate (ngSubmit)="addMessage(addMessageForm.value, focusableTextarea)">
      <textarea #focusableTextarea [formControl]="addMessageForm.get('message')" placeholder="Write your message..."></textarea>
      <input type="submit" value="Send"/>
    </form>
  </div>

// And here is the add message functionality in my component
addMessage(data, focusableTextarea) {
 // ... a lot of code edited out for sample purposes

  focusableTextarea.focus()
}

有没有人知道我能做到的其他事情吗?我甚至尝试添加一个轻微的超时,.focus()在它发射之前等待50ms。这也没有做任何事情。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我在聊天应用中所做的是使用mousedown事件。

>>> id(1)
20643664
>>> id(2)
20643652
>>> 

在函数中

(mousedown)="preventFocusChange($event)"

请告诉我这是否适合您。