Ciao, sicuramente stai chiedendo qualcosa di più che "implementare una funzione".
Ho buttato giù un po' di script per arrivare ad una soluzione presumibilmente valida.
Vedi un po' se questo esempio può darti lo spunto giusto:
codice HTML:
<!DOCTYPE HTML>
<html>
<head>
<title>Esempio</title>
<meta charset="utf-8">
<style type="text/css">
/* qualche regola css */
#campoPuntiRestanti{color:blue}
.campoInput{width:50px; margin:5px 0}
</style>
<script type="text/javascript">
// Definisco le variabili globali
var puntiTotali = 100;
var puntiRestanti;
var campoPuntiRestanti;
var campiInput;
// Aggiorna il campo dei punti restanti
function aggiornaPuntiRestanti(){
puntiRestanti = puntiTotali-totalePuntiUsati();
campoPuntiRestanti.innerHTML = puntiRestanti;
}
// Restituisce la somma dei valori utilizzati sui campi
function totalePuntiUsati(campoEscluso){ // campoEscluso rappresenta il campo in fase di modifica, sarà quindi escluso dal conteggio se specificato
var tot = 0;
var i = campiInput.length;
while(i--) {
if(campoEscluso!==campiInput[i])
tot += parseInt(campiInput[i].value);
}
return tot;
}
// Controlla il campo modificato e ne convalida il valore inserito
function controllaValoreCampo(campo){
var val = parseInt(campo.value)||0;// Converto l'input in un valore numerico intero
campo.value = Math.max(0,Math.min(puntiTotali-totalePuntiUsati(campo)||0,val));// Limito il valore tra 0 e il valore massimo consentito attualmente per questo campo
aggiornaPuntiRestanti();
}
// Inizializzazione
window.onload = function(){
campoPuntiRestanti = document.getElementById("campoPuntiRestanti");
campiInput = document.getElementsByClassName("campoInput");
var i = campiInput.length;
while(i--) {
campiInput[i].onchange = function(){controllaValoreCampo(this)};
controllaValoreCampo(campiInput[i]);
}
}
</script>
</head>
<body>
<form action="">
<b>Punti restanti: <span id="campoPuntiRestanti"></span></b>
<hr>
<br><label for="A">Caratteristica A</label> <input id="A" class="campoInput" type="number" >
<br><label for="B">Caratteristica B</label> <input id="B" class="campoInput" type="number" >
<br><label for="C">Caratteristica C</label> <input id="C" class="campoInput" type="number" >
</form>
</body>
</html>
Ho cercato di commentare al meglio lo script ma se hai bisogno di qualche chiarimento chiedi pure.