30/09/2018, 23:42
Angular input mã phiếu nhập kho
Mình cần làm một cái directive input để nhập mã phiếu, theo định dạng “PN0001”.
- 2 ký tự đầu là “PN”
- 4 ký tự sau là số
thì phải làm thế nào? nhờ mấy bạn giúp với
Bài liên quan
Người dùng có bắt buộc phải nhập chữ
PN
không? Nếu không thì có thể làm như vậy cho đơn giản: https://jsfiddle.net/90fpjenp/1/ Người dùng chỉ phải nhập phần số thôihoặc có thể dùng plugin này: https://igorescobar.github.io/jQuery-Mask-Plugin/
Plugin có hỗ trợ tạo ra format riêng, ví dụ:
thank you, cái jQuery-Mask-Plugin rất giá trị, nhưng hình như nó chưa validation thì phải.
ý bạn là validation gì?
Tức là kiểm tra tính hợp lệ trước khi post,
Plugin hỗ trợ format cái data khi nhập vào thôi. Còn format đó có hợp lệ hay không thì mình phải tự viết thêm
Làm thử một cái theo Angular style thử đi bạn xem như mài kiếm ok?
Ví dụ Qui định là : “PX0001”
Version 1:
Khi user gõ vào nếu đúng thì do notthing, còn nếu sai pattern thì show error báo format phải là “PX0001”, và dĩ nhiên không cho post nếu không đúng pattern
Bổ sung : Cho định nghĩa pattern
Version 2:
giống V1 nhưng nâng cấp một cái là hiện cái format trong khu vực input luôn : “PX____”
Version 3 : chưa nghĩ ra…
…
hix tự đặt yêu cầu cho chính mình!!!
để lát mình post cái v1 rồi bạn tối ưu hóa giúp mình nhé
Mình sẽ thử (thêm text cho đủ 20 chữ)
Nếu là AngularJS thì dùng uimask đi, hỗ trợ thẳng cái Version2 của bạn luôn
GitHub
angular-ui/ui-mask
ui-mask - Mask on an input field so the user can only type pre-determined pattern
như dưới cũng được, tùy chỉnh theo ý mình
của mình đây
http://plnkr.co/edit/THJvl2?p=preview
Của bạn sao gọn vậy ta!!!
Cái của mình là ok cho version 1 rồi nghen;
Thực sự mình cũng chưa hiểu push and unshift khác nhau thế nào??
Mình có thêm biến vào cái regex được không nhỉ ?
Instead of using the /regex/g syntax, you can construct a new RegExp object:
var re = new RegExp(“regex”,“g”);
You can dynamically create regex objects this way. Then you will do:
“mystring”.replace(re, “newstring”);
Vậy mình sẽ thêm biến
var symbol=“PX”;
var soKySo=4;
sau này đẩy vào attr luôn.