Contare i caratteri user e dominio

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Questo codice ha lo scopo di contare i caratteri in una mail, la prima parte, quella prima del else funziona, la seconda parte funziona a metà, cioè: mi blocca l'inserimento a 8 caratteri totali (compreso l'user e la chiocciola).

Dovrei invece fare in modo che mi conti e blocchi l'inserimento a 8 caratteri dopo la chiocciola

PHP:
function contaEmail(suoemail) {
var val = document.forms.mioform1;
var output = '';
max=5
if(suoemail.indexOf('@')<0) {
val.suoemail.value = val.suoemail.value.substring(0,max);
output = suoemail.length > max ? "Username: max 5 caratteri" : null;
} 
else {
var dominio = suoemail.split('@')[1];
max=8
val.suoemail.value = val.suoemail.value.substring(0,max);
output = dominio.length > max ? "Dominio: max 8 caratteri" : null;
}
if(output.length != 0) { 
document.getElementById('contaUserDom').innerHTML = (output + '');
}
}
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
non sono riuscito a far funzionare il tuo codice ne su FF ne su IE
cmq
forse ti basta aggiungere a max la lunghezza della user + la chiocciola
Codice:
else {
                    var primaparte = suoemail.length + 1;
                    max =  primaparte + 8;
                    
                    val.suoemail.value = val.suoemail.value.substring(primaparte ,max);
                    output = suoemail.length > max ? "Dominio: max 8 caratteri" : null;
                }
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Ciao,
non sono riuscito a far funzionare il tuo codice ne su FF ne su IE
cmq
forse ti basta aggiungere a max la lunghezza della user + la chiocciola
Codice:
else {
                    var primaparte = suoemail.length + 1;
                    max =  primaparte + 8;
                    
                    val.suoemail.value = val.suoemail.value.substring(primaparte ,max);
                    output = suoemail.length > max ? "Dominio: max 8 caratteri" : null;
                }
Se funziona la prima parte dovrebbe funzionare anche la seconda
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Intendevo che funziona solo la prima parte quella prima di else, è la seconda, quella del dominio che non va

Primo errore

ho fatto un js per controllare gli errori di altri js

Si è verificato un errore: TypeError: suoemail.indexOf is not a function
Linea: 33

Non contare il numero di riga dell'errore in quanto si riferisce alla posizione dell'errore trovato, contando anche le righe precedenti di codice html, css, js ecc...

Per prova metti anche il form.

Valeria.
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Primo errore

ho fatto un js per controllare gli errori di altri js

Si è verificato un errore: TypeError: suoemail.indexOf is not a function
Linea: 33

Non contare il numero di riga dell'errore in quanto si riferisce alla posizione dell'errore trovato, contando anche le righe precedenti di codice html, css, js ecc...

Per prova metti anche il form.

Valeria.
Questo è la riga del form,

PHP:
<input type="text" name="suoemail" class="campi1" onkeyup="contaEmail(this.value)" />
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Add,

questo if(suoemail.indexOf('@')<0) {

dovrebbe essere if(suoemail.indexOf('@')>=0) {
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
prova cosi
Codice:
<script>
    function contaEmail(suoemail) {
        var val = document.forms.mioform1;
        max=5
        if(suoemail.indexOf('@')<0) {
            val.suoemail.value = val.suoemail.value.substring(0,max);
            output = suoemail.length > max ? "Username: max 5 caratteri" : '';
        } 
        else {
            document.getElementById('contaUserDom').innerHTML = '';
            max =  14;  
            val.suoemail.value = val.suoemail.value.substring(0 ,max);
            output = suoemail.length > max ? "Dominio: max 8 caratteri" : '';
        }
        if(output.length != 0) { 
            document.getElementById('contaUserDom').innerHTML = (output + '');
        }
    }  
</script>
poi ci spieghi a cosa ti serve?
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Si, ma non è il risultato che voglio ottenere, eppoi la prima parte va bene, è la seconda che fa storie

Se per te va bene codice scritto male,

hai notato che ti cancella i caratteri per l'usernamese maggiori di 5 ma dopo che hai inserito la @ il massimo dei caratteri consentiti per username e dominio è di solo 8 caratteri.

e i messaggi di avviso per queso non escono mai?

V.
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Se per te va bene codice scritto male,

hai notato che ti cancella i caratteri per l'usernamese maggiori di 5 ma dopo che hai inserito la @ il massimo dei caratteri consentiti per username e dominio è di solo 8 caratteri.

e i messaggi di avviso per queso non escono mai?

V.
Si ho visto
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
prova cosi
Codice:
<script>
    function contaEmail(suoemail) {
        var val = document.forms.mioform1;
        max=5
        if(suoemail.indexOf('@')<0) {
            val.suoemail.value = val.suoemail.value.substring(0,max);
            output = suoemail.length > max ? "Username: max 5 caratteri" : '';
        } 
        else {
            document.getElementById('contaUserDom').innerHTML = '';
            max =  8;  
            val.suoemail.value = val.suoemail.value.substring(0 ,max);
            output = suoemail.length > max ? "Dominio: max 8 caratteri" : '';
        }
        if(output.length != 0) { 
            document.getElementById('contaUserDom').innerHTML = (output + '');
        }
    }  
</script>
poi ci spieghi a cosa ti serve?

Il tuo va bene la prima parte ma a 8 TOTALI si ferma, mi serve per controllare la lunghezza dell'user e del dominio di una mail

Questo andrebbe bene ma se al posto dell'alert ci metto l'id, non va più bene

PHP:
function contaEmail(suoemail) {
var output = '';
if(suoemail.indexOf('@')<0) {
output = suoemail.length > 5 ? 'Username: max 5 caratteri' : null;
} 
else {
var dominio = suoemail.split('@')[1];
output = dominio.length > 8 ? 'Dominio: max 8 caratteri' : null;
}
if(output.length != 0) { 
alert( output + '' );
}
}
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Contare totale risultati tabella in un periodo di tempo PHP 5
A Contare gli elementi di un array PHP 13
maxnegri Contare sessioni aperte e creare condizione PHP 1
L contare record uguali in file csv PHP 4
B [MySQL] contare quante un oggetto e' presente MySQL 2
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
P [PHP] Contare quante volte uno stesso id si ripete nella tabella PHP 12
P [PHP] Contare i mesi con timestamp. PHP 8
A Contare n° totale oggetti da mysql PHP 5
C Contare numero record uguali Database 3
asevenx [Javascript] [AngularJS] contare opzioni selezionate di una select in un elenco ng-repeat Javascript 0
G [ACCESS2007]: contare li ultimi record con lo stesso valore in un campo, finchè il valore non cambia MS Access 2
xone [PHP] Contare numero dei giorni tra data_in e data_out PHP 11
zorro [PHP] Contare i record di una tabella PHP 6
F Contare le righe con php ad oggetti MySQL 0
asevenx Contare numero di righe in un form dinamico Javascript 5
F Miglior metodo per contare le righe di una query MySQL 2
S Contare valori uguali in una colonna PHP 2
N Contare post MySQL 2
L contare nodi figli di un determinato nodo madre XML 0
H Contare file presenti nella pagina PHP 3
S [RISOLTO]php contare numero delle query PHP 1
L Contare determinati valori che si ripetono in una tabella per un detemrinato ID MySQL 2
Monital Contare il numero di righe con php5 PHP 10
M contare record db con valore specifico PHP 1
D Contare numero div con una determinata classe Javascript 2
criric Contare le settimane di un mese Snippet PHP 3
nim contare record uguali in tabella PHP 10
anthares Contare record in tabella secondo certe condizioni PHP 21
Monital Contare valori uguali di un array e dividerli in una stringa PHP 12
nim contare frasi che si ripetono PHP 10
R Contare il numero di click su un link PHP 2
A contare iniziali dei nomi Java 3
G contare e sommare dopo JOIN Database 8
M non contare gli accessi dal tuo pc Supporto Mr.Webmaster 1
S Come contare i Download file .zip su html HTML e CSS 10
F Caratteri invisibili XML 4
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
B Non riesco a trovare i cognomi con i caratteri speciali in Access (Microsoft 365) MS Access 0
P Codifica caratteri speciali mysql php PHP 0
Z Caratteri speciali irriconoscibili PHP 1
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
A eliminare caratteri speciali mettendo uno spazio PHP 0
A eliminare caratteri diacritici con codice ascii PHP 4
MarcoGrazia Eliminare in automatico i caratteri spuri all'inizio e alla fine di una stringa Snippet PHP 0
K [javascript] Tecnica per rilevare celle contenenti caratteri ricevute in dinamico Javascript 1
M Matrice di caratteri ( inseriti da tastiera ) ordinati in ordine alfabetico C/C++ 3
M [PHP] Troncare caratteri PHP 1
A [PHP] caratteri speciali PHP 14
A [PHP] Modifica caratteri di una query Oracle SQL PHP 0

Discussioni simili