Question

Je suis en train de faire en sorte que cette forme de commentaires sur mon site wordpress ne peut être soumis si l'utilisateur ne saisit pas assez de données dans le textarea.

J'ai écrit cela pour l'en-tête

<script>
function CheckLength()
{
var msg_area = document.getElementById("Message");
msg_area.innerHTML = "";
if (document.getElementById("commentarea").value.length < 100) {
msg_area.innerHTML = "YOU DID NOT ENTER ENOUGH INFO FOR YOUR REVIEW";
}
else document.getElementById("commentform").submit();
}
</script>

Et ma forme ressemble à ceci

<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" name="commentform" id="commentform">


           <p><input size="36" type="text" name="author" /> Name <span class="required">*</span></p>
            <p><input size="36" type="text" name="email" /> Email <span class="required">*</span> (Not Published)</p>
            <p><input size="36" type="text" name="url" /> Website</p>
            <p><input size="36" type="text" name="server_ip" id="server_ip" /> Server IP/Hostname</p>
            <p><?php show_subscription_checkbox(); ?></p>     

            <p><textarea name="comment" id="commentarea" cols="100%" rows="20"></textarea></p>

        <p align="right"><input type="button" name="submit" id="submit" value="Submit Review" tabindex="5" onClick="CheckLength()"></p>
        <span id="Message" style="color:#ff0000"></span>


    <input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />

    <?php /* do_action('comment_form', $post->ID); */ ?>
        </form>

La forme recrache l'erreur « VOUS NE INFO ENTREZ VOTRE REVUE DE ASSEZ » si je tape en moins de 100 caractères, mais si je tape plus de 100 caractères la forme ne présente pas. Si je change le type d'entrée pour le soumettre ne présente, mais il n'a pas d'importance si <100

Était-ce utile?

La solution

Modifier le nom de votre bouton d'entrée.

L'erreur que je reçois en utilisant votre balisage est que soumettons est pas une fonction, car il pense que je fais référence au bouton soumettre. Ce qui suit devrait fonctionner:

<input type="button" name="submitbtn" id="submitbtn" value="Submit Review" tabindex="5" onClick="CheckLength()">

Autres conseils

Pourriez-vous faire?

Mettre le contrôle en cas « onsubmit » pour la forme:

<form action="wp-comments-post.php" onsubmit="return CheckLength();" method="post" name="commentform" id="commentform">

Vous devez vous mettre à jour fonction pour renvoyer une valeur booléenne:

<script type="text/javascript">

function CheckLength()
{
    var msg_area = document.getElementById("Message");
    msg_area.innerHTML = "";
    if (document.getElementById("commentarea").value.length < 100) {
        msg_area.innerHTML = "YOU DID NOT ENTER ENOUGH INFO FOR YOUR REVIEW";
        return false;
    }
    return true;
}
</script>

Retirez ensuite l'événement onclick de votre bouton Envoyer.

Pouvez-vous essayer?

<script>
function CheckLength()
{
    var msg_area = document.getElementById("Message");
    msg_area.innerHTML = "";
    if (document.getElementById("commentarea").value.length < 100)
    {
        msg_area.innerHTML = "YOU DID NOT ENTER ENOUGH INFO FOR YOUR REVIEW";
        return false;
    }
    else
    {
        document.getElementById("commentform").submit();
        return true;
    }
}
</script>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top