我的应用程序的一部分是一个聊天应用程序,每当我点击提交"提交"按钮,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。这也没有做任何事情。
提前致谢!
答案 0 :(得分:0)
我在聊天应用中所做的是使用mousedown事件。
>>> id(1)
20643664
>>> id(2)
20643652
>>>
在函数中
(mousedown)="preventFocusChange($event)"
请告诉我这是否适合您。