<script> var oSpan = document.getElementById( 'counter' ); oSpan.innerHTML = ( ( tab.value.length ) ) +'/' + max; if ( tab.value.length = max ) { input = tab.value.substring(0,max - 1); tab.value = input; } </script> <input name="new_pesel" id="new_pesel" type="text" id="comment" onkeyup="SignLimit(this,11);" required/> <script type="text/javascript"><!-- document.getElementById('new_pesel').onchange = function(){ var new_pesel = this.value; var wzor = /[0-9]{11}/ if (!wzor.test(new_pesel)) { //tutaj mamy zmieniony warunek this.className = "error"; return false; } else { this.className = ''; return true; } } // --></script>
Powyżej wkleiłem prosty kodzić, dzięki któremu w formularzu możemy wpisać PESEL. Jak wiadomo PESEL w Polsce składa się z 11 cyfr. Aby uzytkownik się nie pomylił wstawiłem poza wyrażeniem regularnym z wartością zmiennej var wzor = /[0-9]{11}/ skrypt w JavaScript odliczający ilość wpisanych znaków.
Problem tkwi w tym, żę wpisując ostatnia cyfrę (11) pojawia mi się na ułamek sekundy, poczym zostaje ucięta i w komórce input znajduje się 10 cyfr.
Czy ktoś spotkał się już z takim problemem?