Precedente :: Successivo |
Autore |
Messaggio |
Simona77 Mortale devoto

Registrato: 04/02/08 11:07 Messaggi: 9
|
Inviato: 11 Feb 2008 14:13 Oggetto: Controllo CODICE FISCALE problematico (JAVA) |
|
|
Rieccomi con un nuovo quesito che mi crea non pochi grattacapi in un modulo registrazione utente. Per farla breve:
1) Campo CODICE FISCALE:
Codice: | <td width="26%" class="modulo">Codice Fiscale:</td>
<td width="74%" class="plainTxt"><input name="cfisc" type="text" class="input" id="ordine" size="30" /></td> |
2) Semplice controllo in Java se il campo è vuoto:
Codice: | <script language="JavaScript" type="text/JavaScript">
function checkSubmit()
{
if (window.document.forma.cfisc.value == "")
{
alert("Necessario inserire il codice fiscale!")
document.forma.cfisc.focus();
return false;
}
return true;
}
</script> |
Voglio rendere il controllo più efficace inserendo un controllo sulla validità.
3) Script controllo validità:
Codice: | function controllaCF(cf)
{
var validi, i, s, set1, set2, setpari, setdisp;
if( cf == '' ) return '';
cf = cf.toUpperCase();
if( cf.length != 16 )
return "La lunghezza del codice fiscale non è\n"
+"corretta: il codice fiscale dovrebbe essere lungo\n"
+"esattamente 16 caratteri.\n";
validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
for( i = 0; i < 16; i++ ){
if( validi.indexOf( cf.charAt(i) ) == -1 )
return "Il codice fiscale contiene un carattere non valido `" +
cf.charAt(i) +
"'.\nI caratteri validi sono le lettere e le cifre.\n";
}
set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
s = 0;
for( i = 1; i <= 13; i += 2 )
s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
for( i = 0; i <= 14; i += 2 )
s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
if( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
return "Il codice fiscale non è corretto:\n"+
"il codice di controllo non corrisponde.\n";
return "";
} |
Come posso fondere script 2 e script 3 per avere un controllo java ed completo unico?
Baci,
Simo
[Ho inserito io i tag code. Horus] |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11810 Residenza: Tokelau
|
Inviato: 11 Feb 2008 15:50 Oggetto: Re: Controllo CODICE FISCALE problematico (JAVA) |
|
|
modifica tutte le return della controllaCF(cf) per farti restituire false:
metti
e poi fai
Codice: | <script language="JavaScript" type="text/JavaScript">
function checkSubmit()
{
if (controllaCF(document.forma.cfisc.value)==false)
{
return false;
} else {
return true;
}
}
</script> |
|
|
Top |
|
 |
Simona77 Mortale devoto

Registrato: 04/02/08 11:07 Messaggi: 9
|
Inviato: 11 Feb 2008 18:14 Oggetto: |
|
|
Grazie per la prontissima risposta.
Ho pensato di risolvere così, ditemi se è corretto (ma rimane un problema che illustro in fondo);
1) creato campi Ragione Sociale, Codice Fiscale e Partita IVA
Codice: | <td width="26%" class="modulo">Ragione Sociale:</td>
<td width="74%" class="plainTxt"><input name="compaby" type="text" class="input" id="ordine" size="30" /></td>
<td width="26%" class="modulo">Codice Fiscale:</td>
<td width="74%" class="plainTxt"><input name="cfisc" type="text" class="input" id="ordine" size="30" /></td>
<td width="26%" class="modulo">Partita IVA:</td>
<td width="74%" class="plainTxt"><input name="cfisc" type="text" class="input" id="ordine" size="30" /></td> |
2) creata una funzione in Java per il controllo se privato o azienda e relativo CF e PIVA
Codice: | function vm_isCF(cf)
{
var validi, i, s, set1, set2, setpari, setdisp;
if( cf == "" ) return "";
cf = cf.toUpperCase();
if( cf.length != 16 )
return false;
validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
for( i = 0; i < 16; i++ ){
if( validi.indexOf( cf.charAt(i) ) == -1 )
return false;
}
set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
s = 0;
for( i = 1; i <= 13; i += 2 )
s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
for( i = 0; i <= 14; i += 2 )
s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
if( s%26 != cf.charCodeAt(15)-"A".charCodeAt(0) )
return false;
return true;
}
function vm_isPartitaIva(piva) {
if (piva.length!=11) {
return false;
}
var contributo = new Array(0,2,4,6,8,1,3,5,7,9);
var somma = 0;
for (i=0;i<11;i++) {
if (i%2==0) {
somma += parseInt(piva.charAt(i));
} else {
var cifra = parseInt(piva.charAt(i));
somma += contributo[cifra];
}
}
if (somma%10==0) return true;
else return false;
} |
3) Controllo dei campi inseriti
Codice: | if (window.document.forma.company.value=="") {
if (window.document.forma.cfisc.value=="") {
alert("Privato: inserire il proprio codice fiscale.");
return false;
} else {
window.document.forma.cfisc.value = window.document.forma.cfisc.value.toUpperCase();
if (!vm_isCF(window.document.forma.cfisc.value)) {
alert("Privato: codice fiscale non corretto; controllare.");
return false;
}
}
} else {
if (window.document.forma.cfisc.value=="" || window.document.forma.piva.value=="") {
alert("Azienda: inserire sia partita IVA che codice fiscale.");
return false;
} else
{ window.document.forma.piva.value = window.document.forma.piva.value.toUpperCase();
if (!vm_isPartitaIva(window.document.forma.piva.value)) {
alert("Azienda: partita IVA non corretta; controllare.");
return false;
}
if (!vm_isPartitaIva(window.document.forma.piva.value) && !vm_isCF(window.document.forma.cfisc.value)) {
alert("Azienda: codice fiscale non corretto; controllare.");
return false;
}
}
} |
PROBLEMA:
se si tratta di un privato tutto ok, ma se si tratta di un'azienda il controllo me lo fa solo sulla partita IVA nel senso che, se inserisco il codice fiscale errato dell'azienda ma la partita IVA esatta non vengo avvisata che il codice fiscale inserito è sbagaliato.
Dove ho sbagliato? Devo aggiungere qualche "else" in più?
Baci,
Simo
Ho inserito io i tag code. Horus |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11810 Residenza: Tokelau
|
Inviato: 12 Feb 2008 11:53 Oggetto: |
|
|
Codice: | if (!vm_isPartitaIva(window.document.forma.piva.value) && !vm_isCF(window.document.forma.cfisc.value)) {
alert("Azienda: codice fiscale non corretto; controllare.");
return false;
|
credo sia sbagliato, forse volevi fare
Codice: | if (!vm_isCF(window.document.forma.cfisc.value)) {
alert("Azienda: codice fiscale non corretto; controllare.");
return false;
|
(p.s. ... usa i tag [code] per incollare del codice, si legge meglio! ) |
|
Top |
|
 |
Simona77 Mortale devoto

Registrato: 04/02/08 11:07 Messaggi: 9
|
Inviato: 13 Feb 2008 20:30 Oggetto: |
|
|
Grazie della consueta e pregevole risposta.
Dai prossimi post utilizzerò i tag code...chiedo scusa per la "disattenzione"
Baci,
Simo |
|
Top |
|
 |
horus Macchinista


Registrato: 22/03/05 10:48 Messaggi: 2554 Residenza: Sirio e dintorni
|
Inviato: 14 Feb 2008 08:55 Oggetto: |
|
|
Simona77 ha scritto: | Dai prossimi post utilizzerò i tag code...chiedo scusa per la "disattenzione"  |
Figurati, intanto ho aggiunto nei messaggi precedenti i tag code così chi leggerà in futuro sarà facilitato. |
|
Top |
|
 |
|