Tôi đang sử dụng jQuery Masked Input plugin để đặt tất cả các yếu tố đầu vào với một thuộc tính dữ liệu mặt nạ được xác định với giá trị mặt nạ thuộc tính:Đối tượng không được xác định khi chạy trong một vòng lặp, nhưng không phải khi thực hiện tuần tự
Với html này:
<input type='text' id="a" data-mask='999?999' />
<input type='text' id="b" data-mask='999' />
Và kịch bản này:
$("input[data-mask]").each(function() {
var maskValue = $(this).data('mask');
console.log($(this).attr('id') + ": " + maskValue);
//undefined error here on second iteration "b: 999"
//no issues if you remove the data-mask from one of the input elements
return $(this).mask(maskValue);
});
Các lặp thứ hai một lỗi được ném: "của router lỗi Loại: undefined không phải là một chức năng" trên dòng này, nói rằng 'chia' là không xác định.
firstNonMaskPos = null, $.each(mask.split(""), function(i, c) {
Mã này hoạt động tốt, mặt nạ được đặt không có vấn đề gì.
$('#a').mask('999?999');
$('#b').mask('999');
Mọi người có thể chiếu sáng bất kỳ hành vi kỳ quặc này không?
Ah, cảm ơn bạn! Điều đó sẽ giải thích nó một cách hoàn hảo. – asawyer