Message w JS

0

Problem mam następujący:

Mam do wypelnienia 5 pol w formularzu i z tego 3 pola sa takie, ktore musze sprawdzic przed wyslaniem, a to ze nie znam sie za bardzo na JS dlatego pisze tutaj.

Zalozmy pole KOD_POCZTOWY powinien miec 6 znakow (cyfr) 00-000 i teraz sprawa sie rozgrywa nastepujaca, po kliknieciu na button wysylania chcialbym zeby sprawdzilo kod pocztowy i wyskoczylo okno MESSAGE z informacja - NIEPRAWIDLOWY KOD POCZTOWY.

Jak to zrobic ??? Szykalem po kursach, ale jest problem. Na forum nie wiem jak to moge znalezc.

0

Możesz wykorzystać wyrażenia regularne, poszukaj gdzieś na sieci o tym :)

0
<html>
<head>

<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
<meta name="content-language" content="pl" >

<script TYPE="text/javascript" language="JavaScript">
<!--
   var bledy;
function spr_pop()
{
    bledy =0;
    if(document.formularz.kod1.value == "" || document.formularz.kod2.value == "")
    {
     bledy = bledy+1;
    }


    if(document.formularz.kod1.value.length < 2)
    {
     bledy = bledy+1;
    }


    if(document.formularz.kod2.value.length < 3)
    {
     bledy = bledy+1;
    }    
    
    if(bledy>0)
    {
        alert("Pola nie są poprawnie wypełnione");
        document.formularz.action="";
    
    }

}

function tylko_liczby()
{
    if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;
}

//-->
</script>
</head>
<body>


        <form name="formularz" action="a.html" method="post">
        Kod Pocztowy:</td><td><input type="text" name="kod1" size=2 maxlength=2 value="00" onKeypress="tylko_liczby()"> - <input type="text" name="kod2" size=3 maxlength=3 value="000" onKeypress="tylko_liczby()">
        <input type="submit" name="akceptuj" value="Dalej" onclick="spr_pop();">
        </form>
</body>
</html>

W tym skrypcie sprawdzana jest poprawność kodu pocztowego :)

0

W tym skrypcie sprawdzana jest poprawność kodu pocztowego :)

zapomniałeś dodać ze tylko w Internet Explorerze :-D

milo ze masz dobre chęci ale:

  1. document.formularz.action=""; - nie jest to zbyt profesjonalne ;-)

  2. jak użytkownik będzie chciał wprowadzić literę to zrobi Ctrl-V wiec
    po co mu to w ogóle uniemożliwiać ?

  3. jak już się bierzesz za sprawdzanie klawiszy to weź pod uwagę ze ich
    kody są rożne w rożnych przeglądarkach?.

  4. obiekt window.event jest tylko w IE (być może jeszcze Opera go rozumie)

żeby nie było ze tylko krytykuje to dam rozwiązanie krótsze i prostsze:

<script>

    function check(obj)
    {
        if (obj.kod.value.match(/^[0-9]{2}-[0-9]{3}$/)) return true;

        alert('bla bla bla');

        return false;    
    }

</script>

<form action="" method="post" onsubmit="return check(this)">
  <input type="text" name="kod" maxlength="6" size="6" value="00-000">
  <input type="submit" value="Wyślij">
</form>
0

Zarąbiście - dokładnie o to mi chodziło, tylko teraz wyszedl mały zonk, jak zaczalem dodawać inne pozycje - gdzie robię błąd ?

<script>

    function check(obj)
    {
        if (obj.kod.value.match(/^[0-9]{2}-[0-9]{3}$/)) return true; 
        else alert('zły kod pocztowy'); 

        if (obj.nr_konta.value.match(/^[0-9]{26}$/)) return true;
        else alert('zły numer konta '); 

        return false;    
    }

</script>

<form action="" method="post" onsubmit="return check(this)">
  <input type="text" name="kod" maxlength="6" size="6" value="00-000">
  <input type="text" name="nr_konta" maxlength="26" size="40" value="00 0000 0000 0000 0000 0000 

0000">
  <input type="submit" value="Wyślij">
</form>

Kurcze - JavaScript to dla mnie CZARY MARY.

0

function check(obj)
{
if (obj.kod.value.match(/^[0-9]{2}-[0-9]{3}$/))
{
if (obj.nr_konta.value.match(/^[0-9]{26}$/)) return true;
else { alert('zły numer konta '); return false; }
return true;
}
else alert('zły kod pocztowy');
return false;
}

jak pierwszy warunek był sprawdzony i był poprawny, to miałeś return z funkcji i drugi warunek nie był sprawdzany.

0

Kurcze - dalej walkuje ten sam problem i chcialem to jakos bardziej ergonomicznie zrobic :D i zrobilem tak:

<script> ``` function check(obj) { if (obj.mail.value.indexOf("@")>0 && obj.mail.value.lastIndexOf("@")==obj.mail.value.indexOf("@") && obj.mail.value.indexOf(".")>0 && obj.mail.value.indexOf(" ")==-1) blad="0"; else blad="email"; if (obj.nr_konta.value.match(/^[0-9]{26}$/)) blad="0"; else blad="numer konta"; if (obj.kod.value.match(/^[0-9]{2}-[0-9]{3}$/)) blad="0"; else blad="kod pocztowy"; if (blad=="0") return true; else { alert(blad+": zle wpisany"); return false; } } </script> <form action="" method="post" onsubmit="return check(this)"> <input type="text" name="kod" maxlength="6" size="6" value="00-000"> <input type="text" name="nr_konta" maxlength="26" size="40" value="00000000000000000000000000"> <input type="text" name="mail" size="40" value="przykładowymail@"> <input type="submit" value="Wyślij"> </form> ```

i dziwne, ale jak wpisze zly KOD POCZTOWY to alert sie pojawia, a jak cos innego zle wpisze to juz sie nie pojawi.

Dlaczego - co jest jeszcze zle ?

0

...i dziwne, ale...
do prawdy, bardzo dziwne [glowa]
(moze jak przeczytasz jeszcze raz swoj kod to nie bedzie takie dziwne)

proponuje Ci cos takiego jak ponizej, bedziesz mogl sobie dodawac tych sprawdzen ile chcesz....

<script>

    function check(obj)
    {
        var blad;        

        while (true)
        {
            var reg = /^[a-z0-9_\.-]+@([a-z0-9_-]+\.)+[a-z]{2,}$/i;

            if (!obj.mail.value.match(reg))        
            {
                blad = 'email';
                break;
            }

            if (!obj.nr_konta.value.match(/^[0-9]{26}$/)) 
            {
                blad = 'numer konta';
                break;
            }

            if (!obj.kod.value.match(/^[0-9]{2}-[0-9]{3}$/)) 
            {
                blad = 'kod pocztowy';
                break;
            }

            return true;
        }

        alert(blad + ': zle wpisany'); 

        return false;
   }

</script>

<form action="" method="post" onsubmit="return check(this)">
  <input type="text" name="kod" maxlength="6" size="6" value="00-000">
  <input type="text" name="nr_konta" maxlength="26" size="40" value="00000000000000000000000000">
  <input type="text" name="mail" size="40" value="[email protected]">
  <input type="submit" value="Wyślij">
</form>

1 użytkowników online, w tym zalogowanych: 0, gości: 1