2011-10-19 10 views
7

Tôi có trang web chứa biểu mẫu để cho phép người dùng nhập chi tiết thẻ tín dụng. Các trường cho số thẻ, số phát hành, số CVC và số tiền họ muốn gửi tiền sử dụng hộp nhập liệu trong biểu mẫu HTML có loại "số".Có cách nào để dừng Mobile Safari chèn dấu phẩy vào các trường số trên biểu mẫu HTML không?

Mobile Safari được cập nhật đi kèm với iOS 5 tự động chèn dấu phẩy vào số trong trường nhập "số". Điều này không chỉ trông ngu ngốc trong một số CC, nhưng nó phá vỡ xác nhận của tôi. Có cách nào để ngăn chặn điều này?

Mục đích duy nhất của việc sử dụng "số" thay vì "văn bản" là làm cho iOS và Android mang đến bàn phím mềm chỉ bằng số chứ không phải bàn phím đầy đủ.

Tôi đã thử sử dụng kiểu nhập văn bản "văn bản" có mẫu được đặt thành "[0-9] *". Điều này sẽ trả về số bàn phím trên iOS nhưng không phải trên Android. Nó cũng không cho phép nhập số thập phân.

Tôi sẽ rất biết ơn đối với bất kỳ gợi ý :)

Cảm ơn

+1

Không chỉ số CC, nhưng các trường mã ZIP đơn giản đã bị hỏng ở mọi nơi. Người dùng nhập '55555' và giờ được định dạng thành '55, 555 '. – azdev

Trả lời

1

Tôi đang gặp vấn đề tương tự. Tôi nghĩ rằng nó đã làm với định dạng khu vực trong cài đặt của bạn. Bạn có thể đặt loại thành "văn bản":

type = text pattern = "[0-9] {1,4} (\. [0-9] {2})?"

với giá trị từ 0 đến 9999,99. Tuy nhiên, giải pháp này không kích hoạt bàn phím số trên iOS 5. Hoặc giữ các thiết lập khu vực ghi đè lên (dot/dấu phẩy) và thiết lập:

type = số bước = "0,01" max = "9999,99"

cho các giá trị thập phân từ 0 đến 9999,99. Ngoài ra việc không xác thực hoặc để trống trường có thuộc tính "bắt buộc" không ngăn cản biểu mẫu gửi trong Safari 5.1 (OS X và iOS).

9

Tôi đã thay đổi tên của mình từ "number" thành "tel" và tôi không thấy sự cố xảy ra nữa.

+2

Tôi đã thực hiện việc này cho số CC, vấn đề và CVC. Vấn đề với "tel" là nó không cho phép dấu thập phân nên nó không thể được sử dụng cho các trường tiền tệ. – user1003623

+0

Đối với các trường tiền tệ, có xấu cho chúng được định dạng bằng dấu phẩy không? Có vẻ như "tel" hoạt động cho tất cả các tình huống mà dấu phẩy chỉ không có ý nghĩa. –

5

Bạn sắp đóng - tất cả những gì bạn cần làm là đặt mẫu thành "[0-9] *" và giữ loại là "số".

+1

Không cho phép dấu thập phân vô dụng đối với các trường tiền tệ :( – user1003623