0

ユーザーが最初に 10 個の入力ボックスの 1 つをクリックして (フォーカスを与える)、オンスクリーン キーボードを使用してフォーカスされた入力に文字を追加する、単純なオンスクリーン キーボードを実装する必要があります。

私が抱えている問題は、IE (7、8、および 9) では、どの入力ボックスがフォーカスを取得しようとしているかに関係なく、文字が毎回 5 番目の入力ボックスに追加されることです。

なぜこれが起こっているのか誰でも明確にできますか?

以下に、Chrome と Firefox で完全に動作するコードを示します。

<img onClick='addIt("q")' src = 'images/alphabet/q.png' style='width:50px;height:50px;cursor:pointer'></div>

画像をクリックすると、以下に定義されている JS 関数「addIt('q')」が呼び出されます。

function addIt(key){
  selectedElement = (document.forms["foo"].elements["focusedField"].value!='')?document.forms["foo"].elements["focusedField"].value:"bar";
  d = document.forms["foo"].elements[selectedElement];
  d.value =  d.value + key;
}

入力ボックスをクリックすると、focusedField が割り当てられます。これは、必要な機能のパスワード タイプです (ユーザーは自分が何を入力しているかを見るべきではありません)。

<input type='password' name='4_1' id = '4_1' onFocus='document.forms["foo"].elements["focusedField"].value = this.name'/>
4

1 に答える 1

1

これは、数字で始まるフィールド名を使用しているためです。

を使用するdocument.forms["foo"].elements["4_1"]と、Internet Explorer はそれを と解釈しdocument.forms["foo"].elements[4]、フォームの 5 番目の要素を提供します。

次のように、フィールド名を文字で始めるだけです。

<input type='password' name='x4_1' id='x4_1' ...
于 2012-06-06T08:47:41.933 に答える