Tôi đang gặp sự cố với trường <input>
khi chạy ứng dụng của tôi trên iPad.iPad không viết văn bản trong <input>
Trên màn hình, bạn nhấp vào hộp văn bản, nhập văn bản vào và nhấp vào nút để xác thực đầu vào. Trên iPad tuy nhiên nó sẽ mở bảng điều khiển bàn phím khi bạn nhấp vào nó, nhưng văn bản không hiển thị trong hộp văn bản khi bạn gõ.
Để làm cho mọi việc trở nên thú vị hơn, tôi có một số <textarea>
trong một phần khác của ứng dụng và nó hoạt động hoàn hảo. Sự khác biệt là một là ngồi trên đầu trang của ứng dụng và khác là trong một html nhập khẩu.
Cấu trúc của ứng dụng là như thế này:
Ngày đầu tôi có trang HTML5 chính, trong đó nhập khẩu một trang html có chứa 3 divs. Mỗi div lần lượt nhập các trang html khác. Và những trang đó có nội dung khác nhau, bao gồm cả trường nhập có vấn đề. Something như thế này:
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
Mã cho <textarea>
ngồi trên html chính là như thế này:
<form id="formNotes">
<textarea id="mainTextbox" type="text" onKeyUp="RefreshNote()" onChange="RefreshNote()"></textarea>
</form>
Và mã cho <input>
lĩnh vực bên trong trang html nhập khẩu là như thế này:
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>
Một điều tôi đã học về cách sử dụng sự kiện trên HTML được nhập mặc dù bạn cần sử dụng ontouchstart và các công cụ khác để gọi hàm nhấp chuột. Nhưng trong trường hợp này tôi có thể làm cho iPad mở bàn phím, vì vậy tôi không biết tại sao nó không nhận ra nhấp chuột trên các phím bàn phím, hoặc tại sao nó không gửi giá trị vào hộp văn bản.
[EDIT:] Tôi đã tìm ra lý do tại sao tôi không nhận được bất kỳ văn bản nào vì iPad cho rằng trường <input>
không tồn tại (nó hiển thị trống trong cảnh báo thay vì [object Object]
hoặc [object HTMLInputElement]
). Tôi không biết tại sao.
[CHỈNH SỬA 2:] Tôi đã cố gắng sử dụng getElementsByTagName
và getElementsByClassName
thay vì getElementById
. Với điều đó, dường như nhận ra <input>
, nhưng tôi vẫn không thể đạt được giá trị.
Nó đã không làm việc. Hộp văn bản dừng đáp ứng với đầu vào trong phiên bản máy tính để bàn – Catpixels
"Hộp văn bản đã dừng trả lời đầu vào" ... không chắc chắn ý của bạn là gì. Bạn đã tải thư viện jQuery chưa? Chính xác thì bạn đang cố gắng làm gì với các hàm javascript của mình? Bạn đã tổ chức một nơi nào đó, nơi tôi có thể nhìn vào nó? – inorganik
Tôi có nghĩa là văn bản bạn đã viết không còn hiển thị trong hộp văn bản nữa. Và không, tôi không thể cung cấp bất kỳ ví dụ nào vì đây là công ty sở hữu. Tuy nhiên, tôi đã cố gắng giải quyết một giải pháp, mặc dù khá "khó chịu" theo ý kiến của tôi. Nắm bắt các mã khóa và viết chúng bằng tay (vì bàn phím nên tự làm ngay từ đầu) – Catpixels