• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wiadomość required

0 głosów
834 wizyt
pytanie zadane 2 marca 2020 w JavaScript przez Antoni2422 Użytkownik (570 p.)

Witam,

Zrobiłem formularz kontaktowy i sprawdzanie jego poprawności. Użyłem funkcji required w inputach formularza. Chcę aby przy konkretnym błędzie była pokazywana informacja o błędzie za pomocą required ale z moim tekstem. Czy da się takie coś wykonać?

 

<form class="contact-form" action="contactform.php" method="POST" onsubmit="return validation();">
                    <input type="text" name="name" class="form-item-1 form-item" id="name" placeholder="Pełne imie i nazwisko*" minlength="4" maxlength="30" required >
                    <input type="email" name="mail" class="form-item-2 form-item" id="mail" placeholder="Twój e-mail*" minlength="5" maxlength="50" required>
                    <input type="text" name="subject" class="form-item-3 form-item" id="subject" placeholder="Tytuł" minlength="5" maxlength="30" required>
                    <textarea name="message" class="form-item-4 form-item" id="text" placeholder="Opis*" minlength="30" maxlength="250" required></textarea>
                    <button type="submit" class="form-item-5 form-button" name="submit">Wyślij</button>
function validation()
{
    var name = document.getElementById("name").value;
    var mail = document.getElementById("mail").value;
    var subject = document.getElementById("subject").value;
    var text = document.getElementById("text").value;
    var a = /^[A-Za-z ]+$/;
    var b = /^[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]+$/;

    if (name == "")
    {
        return false;
    }
    
    if (!name.match(a))
    {
        return false;
    }

    if (mail == "")
    {

        return false;
    }

    if (!mail.match(b))
    {

        return false;
    }

    if (subject == "")
    {

        return false;
    }

    if (!text == "")
    {

        return false;
    }


    return true;
}

 

1 odpowiedź

+1 głos
odpowiedź 2 marca 2020 przez Mariusz08 Maniak (62,240 p.)
wybrane 2 marca 2020 przez Antoni2422
 
Najlepsza

Zapewne chodzi Ci o ustawienie setCustomValidity

komentarz 2 marca 2020 przez ScriptyChris Mędrzec (190,170 p.)

Ale zmienna name to string, a nie obiekt DOM. Więc nie ma metody setCustomValidity.

var name = document.getElementById("name").value;

komentarz 2 marca 2020 przez Antoni2422 Użytkownik (570 p.)
A jak zrobić żeby była taka metoda?
komentarz 2 marca 2020 przez ScriptyChris Mędrzec (190,170 p.)
var nameInput = document.getElementById("name");

if (nameInput.value === '') {
  nameInput.setCustomValidity('My custom message...');
}

 

komentarz 2 marca 2020 przez Antoni2422 Użytkownik (570 p.)
Nadal nie działa
komentarz 2 marca 2020 przez ScriptyChris Mędrzec (190,170 p.)

Przełącz wywołanie funkcji validation z onsubmit formularza, na zdarzenie click przycisku submit. Najlepiej przez addEventListener.

Podobne pytania

0 głosów
1 odpowiedź 800 wizyt
pytanie zadane 3 marca 2017 w HTML i CSS przez krispello Obywatel (1,440 p.)
0 głosów
1 odpowiedź 244 wizyt
0 głosów
1 odpowiedź 457 wizyt
pytanie zadane 28 listopada 2017 w SQL, bazy danych przez Thorwaldsen Początkujący (250 p.)

93,776 zapytań

142,732 odpowiedzi

323,384 komentarzy

63,379 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...