Toon posts:

Wordpress comment formulier met "browser validation"

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hi,

Voor mijn Wordpress comment formulier gebruik ik "browser validation" door het toevoegen van onderstaande code aan mijn functions.php:

PHP:
1
2
3
4
5
6
7
8
9
/**
 * Enable form validation
 */
function custom_enable_comment_form_validation() {
    if ( comments_open() && current_theme_supports( 'html5' ) ) {
        echo '<script>document.getElementById("commentform").removeAttribute("novalidate");</script>' . PHP_EOL;
    }
}
add_action( 'wp_footer', 'custom_enable_comment_form_validation' );



Mijn contact formulier bevat een naam en email veld + een 'comment' veld. Alle velden zijn verplicht om ingevuld te worden. Helaas verschijnt het "required field" bericht wanneer een veld niet is ingevuld alleen bij het 'comment' veld... En wanneer ik het 'comment' veld wel invul en het naam en email veld niet wordt de gebruiker alsnog doorverwezen naar de aparte error pagina van Wordpress.

Een voorbeeld van mijn comment formulier met een "required field" bericht welke moet verschijnen nadat een veld nog blanco is, kan worden bekeken door op onderstaande link te klikken:
https://i.stack.imgur.com/vg2Z5.png

Mijn comment formulier velden maken ook gebruik van "placeholders" en ik ben er achter gekomen dat, wanneer ik de "placeholder" van het naam en email veld weghaal, alle velden naar behoren werken en het "required field" bericht laten zien. De bug wordt dus hoogstwaarschijnlijk veroorzaakt door onderstaande code:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
/* Using an placeholder in the name and email field. */
function my_update_comment_fields( $fields ) {

    $commenter = wp_get_current_commenter();
    $req       = get_option( 'require_name_email' );
    $label     = $req ? '*' : ' ' . __( '(optional)', 'text-domain' );
    $aria_req  = $req ? "aria-required='true'" : '';

    $fields['author'] =
        '<p class="comment-form-author">
            <input id="author" name="author" type="text" placeholder="' . esc_attr__( "Your name", "text-domain" ) . '" value="' . esc_attr( $commenter['comment_author'] ) .
        '" size="30" ' . $aria_req . ' />
        </p>';

    $fields['email'] =
        '<p class="comment-form-email">
            <input id="email" name="email" type="email" placeholder="' . esc_attr__( "Your email address", "text-domain" ) . '" value="' . esc_attr( $commenter['comment_author_email'] ) .
        '" size="30" ' . $aria_req . ' />
        </p>';

    return $fields;
}
add_filter( 'comment_form_default_fields', 'my_update_comment_fields' );
?>


Helaas kan ik er maar niet achter komen waar het precies fout gaat.... Kan iemand mij verder helpen?

Weet iemand misschien ook hoe de tekst van het pop-up bericht kan worden veranderd naar een custom bericht in de functions.php?

Alvast bedankt!

[ Voor 0% gewijzigd door MueR op 04-05-2018 11:09 . Reden: Code tags ]

Beste antwoord (via Verwijderd op 04-05-2018 23:04)


  • jugger naut
  • Registratie: September 2010
  • Laatst online: 00:11
Probeer in plaats van
code:
1
 aria-required='true'
eens
code:
1
required='true'
.


Staat de optie require_name_email op true?

[ Voor 19% gewijzigd door jugger naut op 03-05-2018 23:04 ]

Alle reacties


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • jugger naut
  • Registratie: September 2010
  • Laatst online: 00:11
Probeer in plaats van
code:
1
 aria-required='true'
eens
code:
1
required='true'
.


Staat de optie require_name_email op true?

[ Voor 19% gewijzigd door jugger naut op 03-05-2018 23:04 ]


Acties:
  • +2 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 18:30

MueR

Admin Devschuur & Discord

is niet lief

Devschuur® Beleid - Hoe post je code?

Verder: aria-* tags zijn accessibilty attributes, bedoeld voor bijvoorbeeld screenreaders. Zoals jugger naut al zegt, gebruik een aria tag als toevoeging op required, want required doet daadwerkelijk iets.

Een placeholder attribuut telt nooit als value.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • +1 Henk 'm!

Verwijderd

Topicstarter
Erg veel dank, het werkt! Hoe simpel kan het uiteindelijk zijn...