Nie działa skrypt sprawdzania formularza według wzorca

0

Witam,
przepisałem z książki kod sprawdzania formularza według wzorca i mi on nie działa, sprawdzałem kilka razy i mam tak samo jak w książce, nie mogę znaleźć błędu. Kto pomoże znaleźć przyczynę?

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF=8">
<title> Sprawdzanie według wzorca</title>
<style>
div{
width: 400px;
background-color:#dfdfdf;
}
p{
font-size:14pt;
}
.pole{
position: absolute;
left: 130px;
}
</style>
<script>
function Spr_wzorzec()
{
var form=document.getElementById('in_form'),
wzory={ 
'nazwisko' : /^[a-zA-Z]{2,}\s+[a-zA-Z]{2,}$/i,
'E-mail': /^[0-9a-zA-Z_.-]+@[0-9a-zA-Z.-]+\.[a-zA-Z]{2,3}$/i,
};
for (var pole in wzory)
{
if(form[pole])
{
if(!wzory[pole].tekst(form[pole].value))
{
alert('Pole'+pole+ ' ma nieprawidłową wartość');
form[pole].style.background='yellow';
return false;
}
else 
{
form[pole].style.background='';
}
}
}
alert('Wszystkie pola wypełnione poprawnie!');
return true;
}
</script>
</head>
<body>
<div>
<form id="in_form" enctype="text/plain" action=" " method="post" onsubmit='return Spr_wzorzec();'>
<p>Dane osobowe:</p>
<b>Imię i nazwisko:</b>
<input class="pole" name="nazwisko" id="nazwisko" value=""><br>
<b>E-mail:</b>
<input class="pole" name="E-mail" value="" ><br><br><br><br>
<input type ="submit" value="Wyślij"></form>
</div>
</body>
</html>
2

Ukradli Ci spację i taba z klawiatury?

<!DOCTYPE HTML>
<html>
   <head>
      <meta charset="UTF=8">
      <title> Sprawdzanie według wzorca</title>
      <style>
         div{
           width: 400px;
           background-color:#dfdfdf;
         }
         p{
           font-size:14pt;
         }
         .pole{
           position: absolute;
           left: 130px;
         }
      </style>
      <script>
        function Spr_wzorzec() {
            var form = document.getElementById('in_form'),
                wzory = {
                    'nazwisko': /^[a-zA-Z]{2,}\s+[a-zA-Z]{2,}$/i,
                    'E-mail': /^[0-9a-zA-Z_.-]+@[0-9a-zA-Z.-]+\.[a-zA-Z]{2,3}$/i,
                };
            for (var pole in wzory) {
                if (form[pole]) {         //  <--------------- TU MASZ BŁĄD TU MASZ BŁĄD TU MASZ BŁĄD TU MASZ BŁĄD TU MASZ BŁĄD TU MASZ BŁĄD 
                    if (!wzory[pole].tekst(form[pole].value)) {
                        alert('Pole' + pole + ' ma nieprawidłową wartość');
                        form[pole].style.background = 'yellow';
                        return false;
                    } else {
                        form[pole].style.background = '';
                    }
                }
            }
            alert('Wszystkie pola wypełnione poprawnie!');
            return true;
        }
      </script>
   </head>
   <body>
      <div>
         <form id="in_form" enctype="text/plain" action=" " method="post" onsubmit='return Spr_wzorzec();'>
            <p>Dane osobowe:</p>
            <b>Imię i nazwisko:</b>
            <input class="pole" name="nazwisko" id="nazwisko" value=""><br>
            <b>E-mail:</b>
            <input class="pole" name="E-mail" value="" ><br><br><br><br>    <--------------- TU MASZ BŁĄD TU MASZ BŁĄD TU MASZ BŁĄD TU MASZ BŁĄD TU MASZ BŁĄD TU MASZ BŁĄD 
            <input type ="submit" value="Wyślij">
         </form>
      </div>
   </body>
</html>
1

A sprawdzałeś co wypluwane jest w konsoli?

Uncaught TypeError: wzory[pole].tekst is not a function

0

@katakrowa:
Niestety dokładnie taki kod jest w książce, próbuję coś zmieniać , ale nie daje rady.

0

@katakrowa: "Programowanie aplikacji internetowych, Kwalifikacja INF.03, Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych - podręcznik do nauki zawodu technik informatyk i technik programista" Helion 2020

Czy ten kod da się trochę jakoś poprawić aby to działało?IMG_20210330_005753.jpgIMG_20210330_005730.jpgIMG_20210330_005753.jpg

1
Andrzej Harkot napisał(a):

Czy ten kod da się trochę jakoś poprawić aby to działało?

<!DOCTYPE HTML>
<html>
   <head>
      <meta charset="UTF=8">
      <title> Sprawdzanie według wzorca</title>
      <style>
         div{
           width: 400px;
           background-color:#dfdfdf;
         }
         p{
           font-size:14pt;
         }
         .pole{
           position: absolute;
           left: 130px;
         }
      </style>
      <script>
        function Spr_wzorzec() {
            var form = document.getElementById('in_form');
            var wzory = {
                    'nazwisko': /^[a-zA-Z]{2,}\s+[a-zA-Z]{2,}$/i,
                    'E-mail': /^[0-9a-zA-Z_.-]+@[0-9a-zA-Z.-]+\.[a-zA-Z]{2,3}$/i,
                };
                                
            for (var pole in wzory) {                
                if (form[pole]) {
                    if (!wzory[pole].test(form[pole].value)) {
                        alert('Pole' + pole + ' ma nieprawidłową wartość');
                        form[pole].style.background = 'yellow';
                        return false;
                    } else {
                        form[pole].style.background = '';
                    }
                }
            }
            alert('Wszystkie pola wypełnione poprawnie!');
            return false;
        }
      </script>
   </head>
   <body>
      <div>
         <form id="in_form" enctype="text/plain" method="post" onsubmit='return Spr_wzorzec();'>
            <p>Dane osobowe:</p>
            <b>Imię i nazwisko:</b>
            <input class="pole" name="nazwisko" id="nazwisko" value=""><br>
            <b>E-mail:</b>
            <input class="pole" name="E-mail" id=="E-mail" value="" ><br><br><br><br>
            <input type ="submit" value="Wyślij">
         </form>
      </div>
   </body>
</html>
1

I tak generalnie źle przepisałeś tą linię:

<input class="pole" name="E-mail"  id="E-mail" value="">

Brakowało w niej id="E-mail"
i tą także:

if (!wzory[pole].test(form[pole].value)) {
0

@katakrowa: Wielkie dzięki za pomoc.

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