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>