X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Счётчик символов textarea
Чеснок
Чеснок
Topic Starter сообщение 14.8.2014, 0:19; Ответить: Чеснок
Сообщение #1


Есть код в WP
Код
'comment_field'        => '<p class="comment-form-comment"><label for="comment">' . $SMTheme->_( 'comment' ) . '</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>',


Есть статья Как реализуется желаемое мной. Но я никак не могу догнать, как мне видоизменить мой код и что куда добавить, чтобы всё работало.

Суть: народ должен видеть сколько символов текста он набрал и какое минимальное количество должен набрать.

Если кто-нибудь сможет помочь, то моим мукам придёт конец и я наконец то смогу уснуть :facepalm:


--------------------
Забанен за мошенничество
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mialpet
mialpet
сообщение 14.8.2014, 0:35; Ответить: mialpet
Сообщение #2


Ну а если в лоб
Код
'comment_field'        => '<p class="comment-form-comment"><label for="comment">' . $SMTheme->_( 'comment' ) . '</label><div><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></div></p>
<script>
// prototype-analog
function $(obj) {
      if (typeof obj == 'object')
      return obj;
    if (document.getElementById)
        return (document.getElementById(obj));
    else  if (document.all)
        return document.all(obj);

    return null;
}

// PHP str_replace-analog
String.prototype.str_replace = function(srch, rpl)
{
    var ar = this.split(srch);
    return ar.join(rpl);
}

// Узнаём родительский элемент
function getParent(el) {

    return ((el.parentElement) ? el.parentElement : ((el.parentNode) ? el.parentNode : null));

}

// Узнаём параметры элемента: ширину, высоту, а также координаты
function getElementPosition(el)
{
    
    w = el.offsetWidth;
    h = el.offsetHeight;
    
    l = t = 0;
    
    while (el)
    {
            l += el.offsetLeft;
            t += el.offsetTop;
            el = el.offsetParent;
    }

    return {"left":l, "top":t, "width": w, "height":h};
}
function createTextAreaWidget(el, min, max)
{
    var el = $(el);
    var counter = $('counter' + el.id);
    if (!counter)
    {
        var parent = getParent(el);
        var counter = document.createElement('div');
        counter.setAttribute('id', 'counter' + el.id);
        counter.className = 'counter';
        parent.appendChild(counter);
        parent.style.position = 'relative';
        counter.style.position = 'absolute';

        counter.style.left = getElementPosition(el).width + 2 +  'px';
        counter.style.top = 0;
        counter.style.height = getElementPosition(el).height + 'px';
    }

    // перенос строки js принимает за два знака. Исправляем.
    len = el.value.str_replace(String.fromCharCode(13), '').length;
    if (len >= max) {
        el.value = el.value.substr(0, max);
        len = max;
    }

    el.onkeyup = function () {createTextAreaWidget(el, min, max);}
    el.onchange = function () {createTextAreaWidget(el, min, max);}
    createStat(counter, min, max, len);    

}

function createStat(el, min, max, current)
{
    el.innerHTML = '<span class=min>&lt; ' + min + '<\/span><br>';
    var className = (current <= min) ? 'gray' : ((current >= max) ? 'red' : 'normal');
    var cur = (current >= max) ? current + ' !!!' : current;
    el.innerHTML += '<span class=' + className + '>= ' + cur + '<\/span><br>';
    el.innerHTML += '<span class=max>&gt; ' + max + '<\/span>';
}

createTextAreaWidget('comment', 100, 2500);
</script>
',

Хотя я сам спать пошел уже.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 14.8.2014, 0:42; Ответить: x64
Сообщение #3


mialpet, :blink:

Чеснок,
в wp не силён. но простой подсчёт можно сделать так:
Код
<textarea onkeyup="document.getElementById('num').value = this.value.length"></textarea> <input id="num" disabled value="">

input блокируется для изменения, поэтому в него значение пишется программно, при редактировании текста в textarea


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Чеснок
Чеснок
Topic Starter сообщение 14.8.2014, 1:03; Ответить: Чеснок
Сообщение #4


Оба варианта вырубили и форму комментирования и все комменты снесли, очевидно я в текстеру упёрся как по принципу "знакомую букву увидел" и дело всё в чём-то ещё:
Развернуть/Свернуть
Код
<?php global $SMTheme; ?>
   <?php if ( post_password_required() ) { ?>
        <p><?php $SMTheme->_( 'password' ) ?></p>
    <?php return; } ?>
    <?php if ( $post->comment_status!='open' ) { ?>
        <p><?php $SMTheme->_( 'closedcomments' ) ?></p>
    <?php return; } ?>
    
    <?php if ( have_comments() ) { ?>
        <div id="comments">
            
            <h3 id="comments-title">
            
            <?php
                if (get_comments_number()==1) {
                    printf( $SMTheme->_( 'formoneresponse' ), '<em>' . get_the_title() . '</em>');
                } else {
                    printf( $SMTheme->_( 'formmultiresponse' ), '<em>' . get_the_title() . '</em>', get_comments_number());
                }

            ?></h3>
            
            <ul class="commentlist">
                <?php wp_list_comments('callback=custom_comments'); ?>
            </ul>
            
            <?php if ( get_comment_pages_count() > 1 ) { ?>
                <div class="navigation clearfix">
                    <div class="alignleft"><?php previous_comments_link( $SMTheme->_( 'prevcomments' ) ); ?></div>
                    <div class="alignright"><?php next_comments_link( $SMTheme->_( 'nextcomments' ) ); ?></div>
                </div><!-- .navigation .clearfix -->
            <?php } ?>
            
        </div><!-- #comments -->
    <?php } ?>
    
    <?php
        $args=array(
            
'comment_field'        => '<p class="comment-form-comment"><label for="comment">' . $SMTheme->_( 'comment' ) . '</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>',
            'must_log_in'          => '<p class="must-log-in">' .  sprintf( $SMTheme->_( 'mustbe' ).' <a href="%s">'.$SMTheme->_( 'loggedin' ).'</a> '.$SMTheme->_( 'topostcomment' ).'.' , wp_login_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
            'logged_in_as'         => '<p class="logged-in-as">' . sprintf( __( $SMTheme->_( 'loggedinas' ).' <a href="%1$s">%2$s</a>. <a href="%3$s" title="Log out of this account">'.$SMTheme->_( 'logout' ).'</a>' ), admin_url( 'profile.php' ), $user_identity, wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
            'comment_notes_before' => '<p class="comment-notes">' . $SMTheme->_( 'comment_notes_before' ) . ( $req ? $required_text : '' ) . '</p>',            
            'id_form'              => 'commentform',
            'id_submit'            => 'submit',
            'title_reply'          => $SMTheme->_( 'leavereply' ),
            'title_reply_to'       => $SMTheme->_( 'leavereply' ),
            'cancel_reply_link'    => $SMTheme->_( 'cancelreply' ),
            'label_submit'         => $SMTheme->_( 'addcomment' )
        );
    comment_form($args);
    ?>


--------------------
Забанен за мошенничество
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Tollun
Tollun
сообщение 14.8.2014, 1:31; Ответить: Tollun
Сообщение #5


Код
'comment_field'        => '<p class="comment-form-comment"><label for="comment">' . $SMTheme->_( 'comment' ) . '</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>',


Код
'comment_field'        => '<p class="comment-form-comment"><label for="comment">' . $SMTheme->_( 'comment' ) . '</label><input id="num" disabled value=""><textarea onkeyup="document.getElementById(\'num\').value = this.value.length" id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>',


с вариантом от x64.

на jquery
Код
onkeyup="$(\'#num\').val($(this).val().length)"



Сообщение отредактировал Tollun - 14.8.2014, 1:38


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mialpet
mialpet
сообщение 14.8.2014, 8:45; Ответить: mialpet
Сообщение #6


x64, Что? Я взял код с того сайта и засунул в разметку :) запустив в конце саму функцию.
Цитата(Чеснок @ 14.8.2014, 0:03) *
Оба варианта вырубили и форму комментирования и все комменты снесли

Что в разметке в браузере? Что говорит js отладчик? Я сам не работал с вп, но знаю что эти кмски любят фильтровать код и вопрос дошла ли разметка до браузера.

UPD
И самое главное у меня в коде js ковычки надо менять или экранировать (или с этим надо помочь?).

Сообщение отредактировал mialpet - 14.8.2014, 8:45
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Чеснок
Чеснок
Topic Starter сообщение 14.8.2014, 9:55; Ответить: Чеснок
Сообщение #7


Tollun, просто спаситель, уже в который раз выручает)) если кто страдает от php-шных и явашных траблов все сюда.

Заработало как надо, только инпут во всю длинну формы разросся (у меня фон сайта чёрный), но это даже к лучшему я в значение ему прописал описание того, что будет происходить - зачотно вышло.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Забанен за мошенничество
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Рерайт / копирайт от исполнителя с опытом. от 45 р за 1k символов
услуги рерайта и копирайта
8 rest2011 3547 21.4.2021, 13:34
автор: rest2011
Открытая тема (нет новых ответов) Нужны уник описания к видео (адалт), 10-15 руб. за 1 описание 250 - 350 символов
Либо скачивание видео, загрузка на сайт через фтп, + мета-описания
4 Admiral_ukr 2153 1.2.2021, 1:18
автор: underkio
Открытая тема (нет новых ответов) ИЩУ: Написание текстов по 400 символов (рерайт) по 10 руб
1 tatrus 930 3.1.2021, 21:02
автор: acabgirl
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыРазмножение, копирайт, рерайт. Тексты от 40 рублей за 1000 символов!
0 Vreg 917 16.7.2019, 21:39
автор: Vreg
Открытая тема (нет новых ответов) Продам или добуду статьи с вебархива от 3.5 рублей за 1000 символов
1 vsemmoney 1596 30.4.2019, 9:16
автор: vsemmoney


 



RSS Текстовая версия Сейчас: 24.4.2024, 3:00
Дизайн