2009-06-14 40 views
5

tôi muốn chấp nhận các giá trị trong bất kỳ định dạng sau:jQuery plugin cho đầu vào định dạng

  • - $ 5
  • - $ 5,00
  • $ 5
  • $ 5,00

Có thể để làm điều đó bằng cách sử dụng Masked Input Plugin?

Nếu không, tôi đang tìm kiếm plug-in nào?

Làm cách nào để chỉ định một ký tự là tùy chọn?

Mã này tôi đã có cho đến nay

$.mask.definitions['~']='[ +-]'; 
$(".currency").mask("~$9"); 

Trả lời

5

Dưới đây là làm thế nào tôi sẽ thực hiện các quy tắc xác nhận:

$('.myinput').val().match(/^[+-]?\$\d(?:\.\d\d)?$/) 

Vấn đề với mô hình của bạn là nó không được cố định chiều dài, rất khó để viết mã trong mặt nạ, và bạn có thể gặp phải một số người cho $ 3,5, mà không phải là những gì bạn muốn. Với một mô hình như vậy, tôi nghĩ sẽ rất khó để không quay trở lại kết hợp regexp.

Bạn có thể xem xét việc bắt buộc phần trăm, trong trường hợp mẫu của bạn gần như ổn, chỉ cần thêm 0,99 vào cuối và nên làm điều đó (mặc dù là người dùng tôi ghét phải bắt đầu đơn vị tiền tệ của mình ký tự không gian ...).

+0

+1 và chấp nhận –

1

Tôi biết rằng trong mặt nạ bạn cũng có thể làm cho một số mặt nạ tùy chọn, vì vậy bạn có thể có thể nhận được ngay với này

$.mask.definitions['~']='[ +-]'; 
$(".currency").mask("~$9?.99"); 
+0

này không làm việc –

1
$.mask.definitions['~']='[ +-]'; 

$ (". Tệ "). Mask (" ~ $ 9? .99 ");

không hoạt động ???

4

Tôi nghĩ điều này sẽ giúp ích cho bạn.

Sử dụng cú pháp

$(mask_id).maskMoney({showSymbol:false,decimal:'.',precision:2}); 

Bạn có thể hiển thị các biểu tượng nhưng nó có lẽ là tốt hơn để ẩn nó.

5

Chỉ cần làm rõ Antony Đáp lại, các plugin rằng ông sử dụng là jquery-maskmoney:

https://github.com/plentz/jquery-maskmoney

+3

Diego, tôi nghĩ bạn có nghĩa là đây là Plugin ông NÊN đang sử dụng. – Flory

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