2012-03-14 41 views
14

không ai biết làm thế nào để lực lượng bàn phím mở trên trình duyệt Android (4.0 - có thể ít hơn)? tôi đã thử this solution và nó không làm việc cho tôi.lực lượng bàn phím mở trên android

trong dự án tôi đang cố gắng để có được một đầu vào văn bản làm việc, nhưng sau khi gửi (chặn bởi jQuery) nó giữ tiêu điểm nhưng bàn phím biến mất.

đoạn:

$('#typer').blur(function() { 
    $(this).focus().click(); 
}); 

$('#typer').bind('keyup', function (e) { 
    var input = $.trim($(this).val()); 
    // some lines of code.. 
    $(this).val('').focus(); // clean up 
} 

iOS cũng là thú vị .. nhưng không kiểm tra được nêu ra.

+0

Nó không phải là rất rõ ràng, những gì bạn đang cố gắng để đạt được. Điều này làm việc: http://jsfiddle.net/Exceeder/Z6SFH/ (Tôi tạo ra một fiddle để theo dõi vấn đề của bạn) và bàn phím không biến mất. Nhưng bàn phím mềm là cầu kỳ về những gì nhà nước và phong cách của bạn #typer là in Bạn có muốn bàn phím để ở trên màn hình không có vấn đề gì người dùng chạm với ngón tay? –

+1

vấn đề là bàn phím biến mất sau khi gửi. giống như trong ví dụ của bạn. Nó xảy ra sau khi nhấn "Go". Bất kỳ ý tưởng? – mrzmyr

+0

Ah. Nút "Go" ... xem này: http://stackoverflow.com/questions/6545086/html-why-does-android-browser-show-go-instead-of-next-in-keyboard –

Trả lời

6

Android kéo bàn phím mềm bất cứ khi nào trường nhập văn bản được lấy nét. Nút "Go" hoặc "Done" trên Android hoạt động như gửi biểu mẫu, do đó văn bản đầu vào sẽ mất tiêu điểm và bàn phím biến mất. Người dùng hy vọng bàn phím sẽ biến mất sau khi "Go", "Done" hoặc "Enter" được nhấn - vì vậy Android tuân thủ quy tắc này. Việc buộc lấy lại nét trên vùng mờ sẽ không làm được gì nhiều kể từ khi bạn chuyển sang một cửa sổ khác.

$('body').click(function() { $('#typer').focus(); } 

có thể cung cấp giải pháp một phần, theo đó người dùng phải nhấp một lần vào bất kỳ vị trí nào trong trang để typer lấy lại tiêu điểm. Nó làm cho hệ điều hành trở lại hoạt động của trình duyệt và tập trung vào trường nhập. Fiddle này cho thấy nó như là một ví dụ: http://jsfiddle.net/Exceeder/Z6SFH/ (sử dụng http://jsfiddle.net/Exceeder/Z6SFH/embedded/result/ trên thiết bị Android của bạn)

Khác với viết một wrapper giống như PhoneGap để điều khiển imeOptions của bàn phím, tôi không biết bất kỳ giải pháp nào có thể giải quyết vấn đề này.

+0

thanks alex, tôi đã thực hiện giải pháp thay thế bằng cách nhấp vào tài liệu. buồn của nó rằng không có api tốt cho điều đó. '$ (document) .click (function() {$ ('# typer'). focus();})' – mrzmyr

+0

Guys, cho phép đăng các vấn đề mới trên trình theo dõi lỗi Chromium cho việc này. Đó là cách duy nhất để làm cho nó xảy ra. Tôi đăng bài của tôi ở đây: https://code.google.com/p/chromium/issues/detail?id=435871&thanks=435871&ts=1416704707 Chỉ cần giả vờ bạn không thấy vấn đề của tôi và đăng một bản sao để họ thấy sự cần thiết cho điều này hơn. – trusktr

Các vấn đề liên quan