2016-04-15 12 views
0

問題:Safariモバイルの戻るボタンを使用してHTMLフォームを送信するときに、IOSキーボードを閉じる必要があります。私がこの問題のために見つけることができるすべての解決策は、element.blur()を使用するとキーボードを閉じるべきだと言うので、私はAngularディレクティブでそれを行うだけです。しかし、代わりにDoneが押されなければ動作しないようです。私が試したことのいくつかの例:SafariでIOSキーボードを閉じる.blur()を使わないでJavaScript/AngularJSを使用する

form.on('submit', function() { 
    var textfields = form.find('input'); 
    textfields[0].blur(); 
}); 



form.on('submit', function() { 
    var textfields = form.find('input'); 
    textfields[0].focus(); 
    textfields[0].blur(); 
}) 



var defocusElement = angular.element('<input style="opacity: 0; width: 0" type="button">'); 

form.append(defocusElement); 

form.on('submit', function() { 
    defocusElement.focus(); 
}) 

誰かが私が試すことができる別の道をお勧めしますか?これらのソリューションはすべてAndroidでうまく動作します。

+1

あなたはのkeyCode 13とonkeyupのイベントをチェックして、このイベントにキーボードを閉じることができます。 – ayushgp

+0

それはそれをしました!それを回答として投稿し、私はそれを受け入れます。ありがとう=) – Tickolas

答えて

2

onKeyUpイベントがkeyCode 13(戻りキー)であることを確認し、イベントを閉じます。

<input type="text" onkeyup="closeKeyboard(event)"> 

closeKeyboard:

var closeKeyboard = function(event){ 
    if(event.keyCode == 13) 
     //code to close the keyboard 
} 
0

これは(何らかの理由element.blurのためにあれば動作します)が動作していない:

​​

おかげでayushgp!