2011-06-24 22 views
5

Tôi muốn định dạng số khi đang di chuyển với tư cách người dùng. Có một vài plugins hữu ích như jquery.maskedinput, nhưng không ai trong số họ có khả năng để tạo ra một mặt nạ năng động sẽ làm việc với tất cả các kịch bản:Làm cách nào để định dạng số động trong trường nhập?

  • 1000000 -> 1 000 000
  • 100000 -> 100 000
  • 10000 -> 10 000

Và cứ tiếp tục như vậy. Có lẽ có một cách thông minh để đạt được điều này với jquery động như là loại người dùng? Hoặc có lẽ tôi chỉ bỏ lỡ một plugin thực hiện điều này? :)

+0

này phải whe n loại người dùng và không onblur? – natedavisolds

+0

Có, vì trường sẽ chứa số lớn, đó là trợ giúp cho người dùng không mắc lỗi :) – pielgrzym

Trả lời

1

Đây là một regexp đẹp để có những chuỗi cách nhau đúng cách: javascript split string at parts

Và đây là một plugin nhỏ thực nghiệm điều đó dường như làm việc ok bây giờ (nhờ Segaja từ #jquery trên freenode!):

https://gist.github.com/1047003

Để sử dụng nó chỉ bao gồm nó trong mã trang và thêm:

$("input.someclass").formatInput(); 
1

Có một plugin tốt đẹp có thể vừa định dạng vừa phân tích cú pháp các số như thế này. jquery-numberformatter

Điều bạn muốn làm là khi giá trị của trường thay đổi, ngay lập tức phân tích giá trị trường và đặt lại thành định dạng bạn muốn.

+1

Giải pháp này quá nặng - Tôi phải bao gồm tập lệnh plugin và tập lệnh jshashtable làm phụ thuộc, trong khi tôi cần phân tích cú pháp 3-5 trường. Mỗi phụ thuộc thêm là một hình phạt trong điểm số tốc độ trang google. Tôi muốn đi cho một số đoạn mã hoặc một plugin ngắn tôi có thể bao gồm trong mã trang trực tiếp :) – pielgrzym

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