<input>
iPad でアプリケーションを実行すると、フィールドに問題が発生します。
デスクトップで、テキスト ボックスをクリックしてテキストを入力し、ボタンをクリックして入力を検証します。ただし、iPad では、クリックするとキーボード パネルが開きますが、入力してもテキスト ボックスにテキストが表示されません。
さらに奇妙なこと<textarea>
に、アプリケーションの別のセクションに があり、完全に動作します。違いは、1 つはアプリケーションの上にあり、もう 1 つはインポートされた html にあることです。
アプリケーションの構造は次のようになります。
上部にはメインの HTML5 ページがあり、3 つの div を含む html ページをインポートします。各 div は、他の html ページを順番にインポートします。そして、それらのページには、問題のある入力フィールドを含め、それぞれ異なるコンテンツがあります。このようなもの:
Main.html
-> container.html (imported via iframe)
-> div1 (imports page n-1 via load(url))
-> div2 (imports page n via load(url))
-> div3 (imports page n+1 via load(url))
pageN.html
-> contains the <input> field
<textarea>
メインの html に座っているコードは次のようになります。
<form id="formNotes">
<textarea id="mainTextbox" type="text" onKeyUp="RefreshNote()" onChange="RefreshNote()"></textarea>
</form>
<input>
インポートされた HTML ページ内のフィールドのコードは次のようになります。
input{
-webkit-user-select: auto;
}
<form id="formInput">
<input id="text1" type="text" ontouchstart="OpenKeyboard(this)" onKeyDown="WriteText(this)" onKeyUp="WriteText(this)" onChange="WriteText(this)"></input>
</form>
インポートされた HTML でイベントを使用することについて学んだことの 1 つは、ontouchstart などを使用してクリック関数を呼び出す必要があることでした。しかし、この場合、iPad でキーボードを開くことができるので、キーボード キーのクリックが認識されない理由や、テキスト ボックスに値が送信されない理由がわかりません。
[編集:] テキストが書き込まれない理由は、iPad がフィールドが存在しないと見なしているためであることがわかりました (または<input>
の代わりにアラートに空白で表示されます)。理由はわかりませんが。[object Object]
[object HTMLInputElement]
[編集 2:]の代わりにgetElementsByTagName
andを使用しようとしました。これで を認識しているようですが、まだ値に到達できません。getElementsByClassName
getElementById
<input>