Ciao a tutti sto tentando di fare dei controlli sui campi di una form da poter riutilizzare in futuro.

solo che ho qualche problemino.. eheh ^^

l'idea di fondo è che vorrei inviare alle funzioni l'id del campo e quello del form
in modo da poter riutilizzare ogni volta le funzioni
e poter usarle anche in una pagina in cui magari ci siano 2 form diversi
con validazione campi (per questo passo anche l'id del form)

SOLO che... alcune funzioni non vanno... e non capisco il motivo...
pensavo di riferirmi al campo in questo modo:
document[form][campo].selectedIndex>0

solo che mi dice document[form][campo] is undefined....

e non capisco.. visto che ad esempio la funzione nomecognome funziona correttamente.

vi mostro il codice, che così ci si spiega meglio

funzione JS funziona
codice:
function controllo_nomecognome(form,campo) {
	/* 
	Spiegazione della Regular Expression NomeCognome
	^[a-zA-Z]{1} -> primo carattere una lettera
	[a-zA-Z\u00C0-\u00F6\u00F8-\u00FF\'\s]{2,29} -> da 2 a 29 lettere + à è é ò ù ì ' e lo spazio
	per i caratterei accentati ho dovuto usare delle sequenze unicode
	*/
	var RegExpNomeCognome = /^[a-zA-Z]{1}[a-zA-Z\u00C0-\u00F6\u00F8-\u00FF\'\s]{2,29}$/;
	var strNomeCognome = document[form][campo].value;
  	//controllo che il Cognome sia nel corretto formato
	if(!RegExpNomeCognome.test(strNomeCognome)) {
    	return(false); 
	} else {
		return(true); 
	  }
}
funzioni JS che NON funzionano... ?_?
codice:
//controlla che nel menu a tendina non sia selezionato il primo valore (solitamente "scegli...")
function controllo_campiselect(form,campo) {

	//if (document[form][campo].selectedIndex>0) {
//if (document.form_registrazione[campo].selectedIndex>0) {
	if (document.getElementById(campo).selectedIndex>0) {
		return (true);
	} else {
		return (false); 
	  }
}

//controllo cap
function controllo_cap(form,campo) {
	/* 
	Spiegazione della Regular Expression CAP
	^[0-9]{5}$ -> il primo e l'ultimo carattere deve essere un numero tra [0-9] 
				  e il numero è composto da 5 cifre	
	*/
	var RegExpCAP = /^[0-9]{5}$/;
	var strCAP = document[form][campo].value;
  	//controllo che il Cap sia nel corretto formato
	if(!RegExpCAP.test(strCAP)) {
    	return(false); 
	} else {
		return(true); 
	  }
}
sulla pagina php
codice:
if(!controllo_nomecognome("form_registrazione","nome")) {
		inf+="- " + "<?php echo JText::_('LANG_ALERT_NOME'); ?>" + "\n";
	} 

if(!controllo_campiselect("form_registrazione","citta")) {
		inf+="- " + "<?php echo JText::_('LANG_ALERT_CITTA'); ?>" + "\n";
	} 
	
	if(!controllo_cap("form_registrazione","cap")) {
		inf+="- " + "<?php echo JText::_('LANG_ALERT_CAP'); ?>" + "\n";
	}
codice form
codice:
<form id="form_registrazione" name="form_registrazione" method="POST" >
	<input type="hidden" id="azione" name="azione" value="" />	

<div id="campo_nome" class="riga_form">
			<div class="label">
			<label for="lblnome"><?php echo JText::_('LANG_CAMPO_NOME'); ?>: </label>
			</div>
			<div class="campo">
			<input id="nome" name="nome" type="text" value="<?php echo $_POST['nome']; ?>" size="30" />
			</div>
			<div class="clear"></div>
		</div>	

<div id="campo_cap" class="riga_form">
				<div class="label">
				<label for="lblcap"><?php echo JText::_('LANG_CAMPO_CAP'); ?>: </label>
				</div>
				<div class="campo">
				<input id="cap" name="cap" type="text" value="<?php echo $results; ?>" size="30" />
				</div>
				<div class="clear"></div>
			</div>