Używam jQuery Masked Input plugin ustawić wszystkie elementy wejściowe z atrybutem danych maski określonej wartości maski atrybut:Obiekt nie zdefiniowane podczas pracy w pętli, ale nie wtedy, gdy wykonywane sekwencyjnie
Biorąc pod uwagę to HTML:
<input type='text' id="a" data-mask='999?999' />
<input type='text' id="b" data-mask='999' />
I ten skrypt:
$("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);
});
drugiej iteracji zostanie zgłoszony błąd: „Uncaught TypeError: niezdefiniowane nie jest funkcją” na tej linii, mówiąc: „podzielić” jest Nie określono.
firstNonMaskPos = null, $.each(mask.split(""), function(i, c) {
Kod ten działa dobrze, maski są ustawiane bez problemu.
$('#a').mask('999?999');
$('#b').mask('999');
Czy ktokolwiek może błyszczeć światłem w tym dziwnym zachowaniu?
Ach, dziękuję! To by idealnie to tłumaczyło. – asawyer