Установка минимальной длины для текстовой области - PullRequest
3 голосов
/ 17 ноября 2010

Я пытаюсь сделать так, чтобы эта форма комментария на моем WordPress-сайте не могла быть отправлена, если пользователь вводит недостаточно данных в текстовую область.

Я написал это для заголовка

<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>

И моя форма выглядит следующим образом

<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>

Форма выдает ошибку «ВЫ НЕ ВХОДИЛИ ДОПОЛНИТЕЛЬНОЙ ИНФОРМАЦИИ ДЛЯ ВАШЕГО ОБЗОРА», если я набираю менее 100 символов, но если я печатаюболее 100 символов форма не отправляется.Если я изменяю тип ввода для отправки, он отправляет, но не имеет значения, если <100 </p>

Ответы [ 3 ]

1 голос
/ 17 ноября 2010

Не могли бы вы сделать это?

Поставьте флажок в событии "onsubmit" для формы:

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

Вам потребуется обновить функцию, чтобы она возвращала логическое значение:

<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>

Затем удалите событие onclick из кнопки отправки.

1 голос
/ 17 ноября 2010

Измените название вашей кнопки ввода.

Ошибка, которую я получаю, используя вашу разметку, состоит в том, что submit не является функцией, потому что она думает, что я имею в виду кнопку submit. Следующее должно работать:

<input type="button" name="submitbtn" id="submitbtn" value="Submit Review" tabindex="5" onClick="CheckLength()">
0 голосов
/ 17 ноября 2010

Можете ли вы попробовать это?

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...