Ciao a tutti, è "grammaticalmente" corretto questo javascript che ho scritto?

codice:
<script language="javascript"> function compilacodebar(codicebarre){ 
var numero = document.formcodebar.scaricocodice.value; 

if(numero == ""){
document.formcodebar.scaricocodice.value = codicebarre; 
var t = setTimeout(function(){document.formcodebar.submit(); },1500); 
}else{
document.formcodebar.scaricocodice.value = ''; 
clearTimeout(t); 
}
}  </script>
Quando premo su un link, verifico che il campo text scaricocodice del formcodebar sia pieno.

Se è pieno, attendo 1 secondo e mezzo e invio

Se ripremo, il link, il campo è vuoto e quindi svuoto il campo e termino il timeout, che invece non si ferma.

Sapete dirmi perchè?