con js puoi farci ciò che più ti pare e piace e così anche il tuo "attaccante" il problema è quando questi valori "arrivano" da qualche parte, per essere usati, salvati, stampati, etc.... insomma... quando con la tua variabile ci fai "qualcosa".
è in quel punto che io posso agire con codice arbitrario su quel "qualcosa", in addizione a modificarne la costruzione dello sviluppatore.
Perchè posso farlo? .... perchè tu ti aspettavi un numero e io invece ho scritto in quel campo una poesia.
nel tuo specifico ti aspetti dei valori quindi quando li userai puoi ad esempio forzarli con un (int)$tua_var o verificare se è vero che è un numero, atrimenti....
if(is_numeric($tua_var){} else
... poi... numeric sì... ma se questo mi scrive un numero di miliardi di cifre?
...allora posso contare la lunghezza, o posso fare tutto con regex o con le funzioni filter() di php.
Insomma.... considera js come gadget per i tuoi lavori, così come la sua validazione di campi che può essere utile come guida alla compilazione di qualcosa, il lavoro "sporco" lo deve fare sempre php.
Diverso se Ajax. Non nel principio che è sempre lo stesso ma la validazione viene fatta con una richiesta http e con php
M.