[英]Android Keyboard not hidden after form submit
使用輸入字段和“清除”按鈕創建一個表單,您期望:
有趣的是,它的作用完全相反 :提交表單后,鍵盤將打開,而清理輸入內容后,鍵盤將消失。
有什么辦法可以使它“正確”嗎?
代碼,HTML
<form id="form">
<input id="input" type="search" autofocus />
</form>
<button id="clear">clear</button>
和JS
document.getElementById('form')
.onsubmit = function(e) { e.preventDefault() }
document.getElementById('clear')
.onclick = function(e) {
e.preventDefault()
var input = document.getElementById('input')
input.value = ''
// trying to focus to open keyboard, but it didn't work
input.focus()
}
我看到了如何看到它,但這與JS中默認情況下某些事件的工作方式有關。
當您單擊“清除”按鈕時,您正在做的事情集中在輸入之外,這又使鍵盤消失。 由於不再輸入任何內容,因此鍵盤消失了。
但是,當您單擊“繼續/繼續/提交”按鈕時,焦點將停留在輸入上,直到觸發相應的表單操作。
我會:
以下是選項1的代碼段:
document.getElementById('form') .onsubmit = function(e) { e.preventDefault(); } document.getElementById("form").onsubmit = function(e) { e.preventDefault(); document.getElementById('input').blur(); }; document.getElementById('clear').onclick = function(e) { e.preventDefault(); var input = document.getElementById('input'); input.value = ''; input.focus(); };
<form id="form"> <input id="input" type="search" autofocus /> </form> <button id="clear">clear</button>
請參閱此CodePen以供參考。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.