Помощник
|
Счётчик символов textarea |
Чеснок
|
Сообщение
#1
|
||
|
|
||
|
|||
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>< ' + 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>> ' + max + '<\/span>'; } createTextAreaWidget('comment', 100, 2500); </script> ', Хотя я сам спать пошел уже. |
|
|
x64 |
14.8.2014, 0:42;
Ответить: x64
Сообщение
#3
|
|
mialpet,
Чеснок, в wp не силён. но простой подсчёт можно сделать так: Код <textarea onkeyup="document.getElementById('num').value = this.value.length"></textarea> <input id="num" disabled value=""> input блокируется для изменения, поэтому в него значение пишется программно, при редактировании текста в textarea |
|
|
Чеснок
|
Сообщение
#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 |
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 |
|
|
mialpet |
14.8.2014, 8:45;
Ответить: mialpet
Сообщение
#6
|
|
x64, Что? Я взял код с того сайта и засунул в разметку запустив в конце саму функцию.
Оба варианта вырубили и форму комментирования и все комменты снесли Что в разметке в браузере? Что говорит js отладчик? Я сам не работал с вп, но знаю что эти кмски любят фильтровать код и вопрос дошла ли разметка до браузера. UPD И самое главное у меня в коде js ковычки надо менять или экранировать (или с этим надо помочь?). Сообщение отредактировал mialpet - 14.8.2014, 8:45 |
|
|
Чеснок
|
Сообщение
#7
|
|
|
Tollun, просто спаситель, уже в который раз выручает)) если кто страдает от php-шных и явашных траблов все сюда.
Заработало как надо, только инпут во всю длинну формы разросся (у меня фон сайта чёрный), но это даже к лучшему я в значение ему прописал описание того, что будет происходить - зачотно вышло.
-------------------- |
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Рерайт / копирайт от исполнителя с опытом. от 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 |
Текстовая версия | Сейчас: 24.4.2024, 3:00 |