Anzitutto il value dei campi di testo deve essere una stringa vuota, mentre scrivendo value=" " il campo contiene uno spazio (che è una stringa). Quindi, se l'utente immette un numero senza eliminare lo spazio, JavaScript non potrà sommare i valori dei campi di testo, non essendo numeri. Tutto quello che i campi di testo contengono è considerato sempre come stringa, quindi con uno spazio davanti, JavaScript non riesce a fare la conversione implicita del valore dei campi da stringa a numero e di conseguenza, non riesce a sommarli.

Poi, la tua funzione deve semplicemente fare la somma dei valori dei campi e controllarla. Se la somma è diversa da 100, deve ritornare false, altrimenti true.

codice:
function verifica() {
val1 = document.getElementById("perconaraspi").value;
val2 = document.getElementById("perconaraspr").value;
val3 = document.getElementById("perconararic").value;
val4 = document.getElementById("perconaraalt").value;
totale = val1 + val2 + val3 + val4;
if (totale!=100) {
alert("La somma deve essere 100!");
return false;
}
else {
return true;
}
}
Naturalmente, dovresti modificare la funzione anche per controllare che gli input dell'utente siano effettivamente numeri e non stringhe (puoi usare una regular expression).

PS: il codice (X)HTML della pagina andrebbe scritto tutto minuscolo per correttezza e aderenza agli standard. Non dovresti scrivere method="POST", name="Submit" e onSubmit.