Mi sa che ti stai complicando la vita.

Perche` usare dei campi hidden, e non un vettore JS?
codice:
<script type="text/javascript">
var scontod = new Array(0, 21, 22, 11, 65, 22);

function get_sconto(ss){
  var ditta = ss.options[ss.selectedIndex].value;
  ss.form.sconto.value = "sconto: " + scontod[ditta];
  var prez = parseFloat(ss.form.prezzo.value);
  ss.form.prezzo_acq.value = prez - (prez*scontod[ditta]/100);
}
</script>
Nel form dovrai avere i campi:
<input type="text" name="sconto" disabled="true" />
<input type="text" name="prezzo" />

Oltre alla tua select, che dovrai modificare in modo da passare l'oggetto alla funzione:
<select name="fornitore" onchange="get_sconto(this);">

Nota che nel DOM la parola form indica il form, per cui non puoi usarla come variabile.