4

プログラムでフォーカスが1つの入力フィールドから別の入力フィールドに移動するときはいつでも、キーボードをiphoneに表示したままにしておきたいです。初めてフォーカスを設定したときはコードは正常に機能しますが、その後はうまくいきません。

これがコードのスニペットです。キーボードを表示したままにする方法はありますか?ライブデモhttp://navtest.0fees.net/del/、iphoneまたはipadで開きます。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<style>
body{background-color: #efefef;}
input:focus{ color:red; font-size:30px; background: rgba(0,0,0,0.2); }
.button {
  font-family: Arial; color: #ffffff; font-size: 35px; padding: 10px;
  text-decoration: none; -webkit-border-radius: 28px; -moz-border-radius: 28px;
  -webkit-box-shadow: 0px 1px 3px #666666; -moz-box-shadow: 0px 1px 3px #666666;
  text-shadow: 1px 1px 3px #666666; border: solid #005157 2px;
  background: -webkit-gradient(linear, 0 0, 0 100%, from(#c3f7f4), to(#095461));
  background: -moz-linear-gradient(top, #c3f7f4, #095461);
}
.button:hover { background: #19ad02; }
</style>
    <head>
        <title>I Pad</title>
        <script type="text/javascript" src="./jquery-1.7.2.min.js"></script>
    </head>
    <body>
        <button type="button" name="" id="name" value="" class="button">Submit</button>
        <input type="text" id="kb" value="" class="button"/>
        <input type="text" id="kb1" value="" class="button"/>
        <script type="text/javascript">
                $('#name').click(function(){            
                    $('#kb').focus();
                    $('#kb').blur(); //not important
                    $('#kb1').focus();
                });
        </script>
    </body>
</html> 
4

2 に答える 2

1

*編集#2 *

この質問に対する解決策はないようです(少なくともこれまでのところ)。

*編集終了#2 *

Safariでフィールドを「ぼかす」とキーボードが非表示になり、新しいフィールドに「フォーカス」するとキーボードが表示されると思います。したがって、何か奇妙なことをしているのでない限り(新しいフィールドに焦点を合わせた後、古いフィールドを手動でぼかすなど)、私は正直に言って、あなたが説明する動作をする理由を理解していません。

* 編集 *

コードを見て、最後に行うのはフォーカスであり、キーボードを元に戻す必要があることに気づきました。ただし、手動でぼかしを行っています。最初にそれを削除してみて、問題が解決するかどうかを確認します。

*編集終了*

ただし、これを解決するための1つの可能な解決策は、イベントハンドラーe.preventDefault()の内部から使用することです。onBlurこれにより、ブラウザがデフォルトでキーボードを非表示にする動作を防ぐことができます。

于 2012-07-19T20:54:02.370 に答える
0

iPhoneは、ユーザーの操作によってのみキーボードをトリガーするように設計されていると思います。そのため、ボタンを手動でクリックすると、フォーカスを入力ボックスに移動してキーボードを開くことができますが、プログラムでボタンをクリックし、ボタンのイベントハンドラーから入力ボックスにフォーカスを設定してキーボードを開く他の試みは機能しません。

私が残している唯一のオプションは、すべての入力ボックスの属性を読み取り専用に設定し、それをクリックすると、そのすぐ上にある透明な入力ボックスを開くことだと思います。次に、透明な入力ボックスから値を取得し、必要な読み取り専用入力ボックスに設定します。

その後、透明な入力ボックスの位置を、値を設定している読み取り専用の入力ボックスに変更し続けます。

誰かがそれをするより良い考えを持っているなら、私は提案を受け入れます。

于 2012-07-19T23:26:29.660 に答える