Cześć, dynamicznie sprawdzam wartość inputa i decyduję czy spełnia on warunki.
function sprawdz1(){
a=document.getElementById("test1").value;
if(a == "" || a == null) document.getElementById("wynik").innerHTML="<p style='color: red;'>Pole musi być wypełnione!</p>";
else document.getElementById("wynik").innerHTML=null;
}
function sprawdz2(){
ma = false;
a=document.getElementById("test2").value;
for(i = 0; i <= a.length-1; i++)
if(a[i] >= '0' && a[i] <= '9') ma = true;
if(!ma) document.getElementById("wynik1").innerHTML="<p style='color: red;'>Pole musi zawierać liczbę!</p>";
else document.getElementById("wynik1").innerHTML=null;
}
<input type="text" id="test1" onkeydown="sprawdz1();" onclick="sprawdz1();"><span id="wynik"></span><br />
<input type="text" id="test2" onkeydown="sprawdz2();"><span id="wynik1"></span>
Działa to bardzo ułomnie. Przykładowo w drugiej funkcji dopiero druga liczba wpisana w pole jest wychwytywana. Pola działają bardzo mułowato i często trzeba odświeżać stronę aby coś tam wpisać. Tak samo ciężko coś z nich skasować, bo po prostu muli. Jest może jakiś inny event, który lepiej to sprawdzi?