2012-03-21 27 views
10

Tôi đang sử dụng đầu vào monthpicker (tương tự như thanh công cụ ngày của giao diện người dùng jQuery) cho trường hết hạn thẻ tín dụng.Làm thế nào để tắt bàn phím iPhone cho trường nhập được chỉ định trên trang web

Tôi cần phải tắt bàn phím iPhone vì nó ẩn bộ chọn tháng.

Tôi đã cố gắng đặt trường thành chỉ đọc và không phải là giải pháp có thể chấp nhận được - trong các trường chỉ đọc Safari iOS 5.1 được bỏ qua trong điều hướng bàn phím (nút trước/tiếp theo trên bàn phím). Làm mờ trường cũng không được chấp nhận vì nó kích hoạt xác thực (chúng tôi cũng đang sử dụng xác thực jQuery).

Có cách nào để tắt bàn phím iPhone trên một trường mà không đặt nó chỉ đọc hoặc làm mờ không?

Trả lời

5

Tôi chưa từng tìm cách ẩn bàn phím. Nhưng bạn đã nghĩ cách khác để hiển thị "đầu vào". Một tùy chọn sẽ sử dụng <input type="month" /> mang đến bộ chọn tháng gốc trong iOS5.

Tùy chọn thứ hai sẽ là kiểu tạo kiểu ví dụ. phần tử span làm phần tử đầu vào (ngoại hình -webkit không hoạt động trên iOS) và thêm tabindex cho phần tử. Điều này cũng có thể làm việc, mặc dù tôi không biết về bộ chọn tháng bạn đang sử dụng.

Tùy chọn thứ ba - bạn không thể ngăn quá trình xác thực khi làm mờ trường được kích hoạt theo cách thủ công?

+1

Nice! '' đưa ra một bộ chọn tháng tốt hơn cho iPhone. Opera 11.6 bật lên một bộ chọn ngày đầy đủ vì vậy tôi sẽ phải làm việc xung quanh bằng cách nào đó. Điều này không trả lời câu hỏi như được hỏi nhưng có vẻ như nó giải quyết được vấn đề. –

+1

Vì vậy, tôi đã kiểm tra tác nhân người dùng crappy cho iPhone và iPod và đặt thuộc tính type thành "month" nếu đúng và chỉ tải thanh công cụ tháng nếu sai. Hoạt động tuyệt vời. Tôi sẽ xem lại với một màn hình + ontouchstart thay vì kiểm tra tác nhân người dùng sau. Cảm ơn nhiều! –

2

Tôi đã có một vấn đề tương tự trong Drupal, nơi các lĩnh vực đầu vào sẽ được gắn thêm động, do đó, tôi đã thêm một số js, kiểm tra cho Iphone/Ipad và thêm "readonly" tài sản

var checkUserAgent = navigator.userAgent; 
    if (checkUserAgent.match(/iPad/i) || checkUserAgent.match(/iPhone/i)) { 
     var checkBabyId1 = $('#babys_due_date_id').length > 0; 
     if (checkBabyId1 == true) { 
      $('#babys_due_date_id').find('input').prop('readonly', true); 
     } 
    } 
Các vấn đề liên quan