Avatar billede jwulff Nybegynder
19. februar 2010 - 13:12 Der er 5 kommentarer og
1 løsning

Login via email eller telefonnummer

Hej Eksperten,

Jeg benytter jquery til at logge brugere ind med. Som brugernavn kan  de enten bruge email eller telefonnummer. Mit problem er validering, i forhold til at skelne de to inputs.

Følgende script benyttes: http://docs.jquery.com/Plugins/Validation

Pt. har jeg kun email via følgende felt:
<input id="uname" type="text" name="uname" class="required email" />

Er der nogle der har en idé, til hvordan der valideres på følgende måde: Hvis der ikke indtastes et @ i brugernavnet = telefonnummer, og derfor kun 8 tal. Hvis @ så skal der tjekkes for korrekt email adresse.

Mvh.
Jacob
Avatar billede Slettet bruger
19. februar 2010 - 13:23 #1
Prøv at søge - der er en milliard tråde om eMailAdresse-validering her på X : )

Men generelt: Jeg tror du skal passe på, ikke at jage folk væk, ved at kræve at de skal slippe den slags "personlig" information. Mange brugere er (med rette) bange for at udlevere deres eMail (og telefonnummer) af frygt for at blive overdynget med Viagra reklamer.

Hvorfor ikke bare lade folk vælge det bruger-navn de har lyst til ?
Avatar billede jwulff Nybegynder
19. februar 2010 - 13:27 #2
Email valideringen virker helt som den skal.

Problemet er at jeg gerne vil have ét felt hvor de indtaster enten email eller telefonnummer, som der så valideres Inden der trykkes send ( http://docs.jquery.com/Plugins/Validation#Example ) - dvs. nærmest to valideringer, afhængig af inputtet i feltet.

Der skal benyttes enten email eller telefonnummer til systemet.
Avatar billede intenz Novice
19. februar 2010 - 13:27 #3
Avatar billede jwulff Nybegynder
19. februar 2010 - 13:59 #4
Det lyder som vejen frem, men desværre også her mine færdigheder ikke er med mere. Er der nogle der kan hjælpe, eller guide mig lidt frem?

Der er et eksempel på custom metode her http://docs.jquery.com/Plugins/Validation/Validator/addMethod#namemethodmessage

Der er i forvejen lavet metoden email(), samt minlength( length ) / maxlength( length ). Kan man ikke lave en kombination af disse, eller er jeg helt væk?

Jeg vil gerne give flere point, hvis der er nogle der kan hjælpe mig :-)
Avatar billede intenz Novice
19. februar 2010 - 14:50 #5
Her er en løsning:

<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js"></script>
    <script>
        function isInt(x) {
            var y=parseInt(x);
            if (isNaN(y)) return false;
            return x==y && x.toString()==y.toString();
        }
        function isEmail(email) {
            var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
            if (regex.test(email)) return true;
            else return false;
        }

        jQuery.validator.addMethod("email_phone", function(value, element) {
            var success = false;
              if (value.length == 8) {
                if (isInt(value)) success = true;
            } else {
                if (isEmail(value)) success = true;
            }
          return this.optional(element) || success == true;
        }, "Feltet skal indeholde enten en email eller et telefonnummer!");

        $(document).ready(function(){
            $("#testForm").validate();
        });
    </script>
</head>
<body>
    <form id="testForm" method="get" action="">
        <label for="cemail">E-Mail/telefon</label>
        <input id="cemail" name="email" size="25"  class="required email_phone" /><br />
        <input class="submit" type="submit" value="Submit"/>
    </form>
</body>
</html>


Der er to hjælpe funktioner til at tjekke om det er et tal eller email. Jeg kan ikke lige lure hvordan man kan bruge de eksisterende i validator inde i en custom metode. Men det giver vel samme resultat.
Avatar billede jwulff Nybegynder
20. februar 2010 - 08:28 #6
Hej intenz,

Alletiders!! Mange tak for hjælpen - det spiller bare nu :-)

God weekend.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester