none
PCのsafariなどのブラウザではFocusできるが、Ipadのsafariではfocus出来ない。 RRS feed

  • 質問

  • ASP.netで作成したWebページですが、javascriptでkeydown時に別のinputエリアにfocusするようにしています。
    PCでのsafariでは、フォーカスが正常に移動するのですが、ipad版safariではフォーカスが移動しません。
    ipadのsafariでは、動きが違うのでしょうか?
    また、どうすれば次項目へのfocusが有効になるのでしょうか?

     if (event.keyCode == 13) {  の部分を外してもIpadでは動きません。
    function shocdkeydon()内にalert入れるとメッセージは表示されますので、通っているのは確認出来ました。


    //javaScript部分
    function shocdkeydon(){
     if (event.keyCode == 13) {  //エンターで数量にフォーカス
      document.getElementById('suuryou').focus();
     }
    }

    //
    <input type="text" id="shocd" onkeydown="shocdkeydon();" />
    <input type="text" id="suuryou" />

    2010年7月2日 8:04

すべての返信

  • iPad の場合、フォーカスを設定したらソフトキーバードが開くような動作を期待してます?

    ちゃんと確認してませんが、iPhone や iPad はタッチ UI が前提なので、フォーカスの概念が無いというか、通常のブラウザと異なるんじゃないでしょうか?

    2010年7月2日 17:21
  • alert(event.keyCode) すればわかると思いますが、Mac OS / iPhoneOS / iOS では 13 ではなく 3 だったりしませんか?

    3 という数値は、こちらのライブラリの safariKeys から http://closure-library.googlecode.com/svn/docs/closure_goog_events_keyhandler.js.html

    2010年7月5日 1:23
  • 返信ありがとうございます。
    <input type="button" />のonclick時にfocusを入れると、正常にフォーカスが移動します。
    なので、focusの概念がないとは思えません。

    ipadのsafariではkeydownのイベントの時にfocusが使えなくなっているのかな?
    そこら辺のことを書いてある仕様のページがないか調べてみます。

    2010年7月5日 8:42
  • 返信ありがとうございます。
    上記の例でif文内にはalert入れるとアラートメッセージが表示されます。
    エンター時に13でif文内のjavascriptが動いていました。
    今回はkeydown時に別のinputエリアにフォーカス出来ないと言う質問なので、
    3という数値については、リンク先を見て後日早めにテストさせてもらいます。
    2010年7月5日 8:53
  • 3 は、テンキー(や、テンキーモード)の ENTER の場合に送られるようですね。

    ところで、ハードウェアキーボードを利用されていますか? ソフトウェアキーボードを利用されていますか?

    ソフトウェアキーボードを利用している場合、ポップアップが表示された状態で入力エリアのフォーカスを移動しようとした場合、意図しない場所に入力されることを避けるためにフォーカス切替ができないかもしれませんね。ボタンクリックによるフォーカス移動では、そういった問題がないからフォーカスが設定できたりしたのではないでしょうか?

    2010年7月5日 23:41
  • 返信ありがとうございます。

    >ソフトウェアキーボードを利用している場合、ポップアップが表示された状態で入力エリアのフォーカスを移動しようとした場合、意図しない場所に入力されることを避けるためにフォーカス切替ができないかもしれませんね。ボタンクリックによるフォーカス移動では、そういった問題がないからフォーカスが設定できたりしたのではないでしょうか?

    ソフトウェアキーボード使用しているので、そうかもしれませんね。
    そういう情報がないか、調べてみます。

    2010年7月7日 0:58
  • みなさん色々知恵をありがとうございます。
    keyDownイベントでのFocus移動はあきらめました。
    入力項目の横にボタンをつけて、Click時にデータの参照とFocus移動するようにしました。

    あきらめたと書きましたが暇さえあれば、もう一度調査したいと思います。

    2010年7月20日 23:27