Ti do` una traccia: mi pare che sei in grado di svilupparla.
Pero` non ho capito in quali campi si deve cercare (forse mi sono espresso male nell'"anello2").

Suppongo che quindi ci siano una serie di campi, che per semplificare e per chiarezza metto in una matrice:
codice:
Descrizione1 (text) || Quantita1 (text) || altro1 (...)
Descrizione2 (text) || Quantita2 (text) || altro2 (...)
...
Per procedere suppongo: Non si sa quanti ce ne sono, ma si sa che non ci sono buchi.
Suppongo ancora che devo riempire i campi Quantita.
codice:
function riempiquan(num) {
  var ff = document.NOMEFORM;  // o altro sistema per individuare il form
  var ind = 0;
  var inser = 0;
  while(inser==0) {            // loop 
    ind++;
    if(!ff.elements['Quantita'+ind]) {
      inser = -1;              // non ci sono campi liberi
      break;
    }
    if(ff.elements['Quantita'+ind].value != '') {
      ff.elements['Quantita'+ind].value = num;
      inser = 1;
      break;
    }
  }
  // spazio per altre operazioni
}
In realta` i break non sarebbero necessari; li ho lasciati perche` il tutto funziona anche con un while(1) (loop indefinito)