Bueno al final he descubierto como hacerlo, cambiando la funcion de sumar por esta:
Código HTML:
<script language="javascript">
function sumar(){
var a, total = 0;
var elements = getElementsByClass('sumarcaratula');
for(a=0; a<elements.length; a++){
total += (parseFloat(elements[a].value));
}
document.getElementById("resultado").value = total;
}
</script>
y creando con anterioridad la funcion getelementsbyclass que he encontrado, que creando un estilo especifico en css recoge los campos se llamen como se llamen y si creo nuevos campos con ese estilo se suman tambien asique ya está solucionado.
Código HTML:
<script language="javascript">
function getElementsByClass(searchClass,node,tag) {
var classElements = new Array();
if ( node == null )
node = document;
if ( tag == null )
tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
for (i = 0, j = 0; i < elsLen; i++) {
if ( pattern.test(els[i].className) ) {
classElements[j] = els[i];
j++;
}
}
return classElements;
}
</script>
Saludos.