Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
1

Сколько осталось символов до максимума в textarea

30.08.2014, 23:38. Показов 2567. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создал так сказать "Chars left" - сколько осталось символов до максимума в textarea и т.п.

Тау работает:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<form action="" name="generate_qr_text" method="POST" onsubmit="return validate_qr_text();">
    <input name="invite" type="hidden" value="'.$_POST['code'].'">
    <p class="name">Text:<span class="red">*</span><span class="red" id="inc_012" style="display:none;font-style:oblique;font-weight:bold;"> <-- Text can not be empty!</span></p>
    <input id="qr_text" name="text" type="text" size="90" maxlength="80" class="input"><span style="font-weight:bold;">Chars left: </span><span id="charsLeft_text" style="font-weight:bold;"></span>
    '.$var_html.'
    <input type="submit" value="Create!" name="bgenerate_qr_text">
</form>
<script type="text/javascript"> 
    $(document).ready(function(){               
    $(\'#qr_text\').limit(\'80\',\'#charsLeft_text\');
    }); 
</script>
А тоже самое вот тут - нет!
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form name="email_form" method="POST" onsubmit="return validate_email_form();">
    <p class="name">From:<span class="red">*</span><span class="red" id="inc_006" style="display:none;font-style:oblique;font-weight:bold;"> <-- Type the E-mail it will be send from!</span></p>
    <input name="from" type="text" maxlength="50" class="input" style="width:200;">
    <p class="name">To:<span class="red">*</span><span class="red" id="inc_007" style="display:none;font-style:oblique;font-weight:bold;"> <-- Type the valid E-mail!</span></p>
    <input name="to" type="text" maxlength="50" class="input" style="width:200;">
    <p class="name">Subject:</p>
    <input name="subject" type="text" maxlength="50" class="input" style="width:200;">
    <p class="name">Text:</p>
    <textarea name="text" class="mail_textarea" style="width:700px;height:240px;"></textarea>
    <div class="float" style="width:500px;max-width:500px;height:45px;">
         <p style="font-weight:bold;">Chars left: </span><span id="charsLeft" style="font-weight:bold;"></p>
         <p>'.help_gen().'<span class="red">*</span><span class="red" id="inc_008" style="display:none;font-style:oblique;font-weight:bold;"> <-- Type the correct answer!</span></p>
     </div>
     <input type="submit" name="send_free" value="Send!" class="mail_button_free" style="margin-top:5px;">
     <div class="clear"></div>
</form>
<script type="text/javascript"> 
      $(document).ready(function(){             
      $(\'textarea\').limit(\'500\',\'#charsLeft\');
      });   
</script>
В чем косяк - то?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2014, 23:38
Ответы с готовыми решениями:

Определить, сколько свободных символов осталось в строке
Физический строка экрана содержит 40 символов, а логический строка 255 символов. Написать...

Определить, сколько осталось символов до переноса на новую строку в TextBox
как узнать, сколько осталось символов до переноса на новую строку в textbox ?

Узнать сколько символов осталось во входной очереди после cin
Доброго времени суток, подскажите пожалуйста как узнать, сколько символов осталось во входной...

определить, сколько символов ‘e’ предшествует первому вхождению символа ‘u’ ( либо сколько всего символов ‘e’ в этой последовательности)
определить, сколько символов ‘e’ предшествует первому вхождению символа ‘u’ ( либо сколько всего...

17
Дзен-программист
122 / 87 / 16
Регистрация: 10.04.2013
Сообщений: 253
31.08.2014, 00:37 2
illya05, какую ошибку выдаёт? И можно ссылку на плагин? Либо код, если сами написали limit.
1
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
31.08.2014, 00:50  [ТС] 3
xenohunter, Ошибки нет, просто скрипт не считает кол-во знаков в полях (хотя на других страницах все работает)

Плагин:
Javascript
1
(function($){$.fn.extend({limit:function(limit,element){var interval,f;var self=$(this);$(this).focus(function(){interval=window.setInterval(substring,100)});$(this).blur(function(){clearInterval(interval);substring()});substringFunction="function substring(){ var val = $(self).val();var length = val.length;if(length > limit){$(self).val($(self).val().substring(0,limit));}";if(typeof element!='undefined')substringFunction+="if($(element).html() != limit-length){$(element).html((limit-length<=0)?'0':limit-length);}";substringFunction+="}";eval(substringFunction);substring()}})})(jQuery);
0
Дзен-программист
122 / 87 / 16
Регистрация: 10.04.2013
Сообщений: 253
31.08.2014, 14:04 4
illya05, вам очень срочно? Если нет, то могу вечерком написать нормальный плагин. Кстати, не работать может из-за отсутствия поддержки textarea.

Не по теме:

Не знаю, кто писал это чудо, но... eval()! Там используется eval()!!!
И зачем-то огород с focus и blur вместо простого подвешивания на onkeyup проверки текущей длины.

1
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
31.08.2014, 14:24  [ТС] 5
xenohunter, Мне не срочно, сайт в разработке - времени вагон и маленькая тележка ))

Буду очень благодарен!
0
Дзен-программист
122 / 87 / 16
Регистрация: 10.04.2013
Сообщений: 253
01.09.2014, 02:26 6
Лучший ответ Сообщение было отмечено illya05 как решение

Решение

illya05, держите. Если что, можете там цвет менять, в зависимости от значения. Или ещё что-то.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(function ($) {
 
    $.fn.limit = function (elem, limit) {
 
        var target = this,
            display = $(elem);
 
        target.on('focus keyup', function () {
            var len = target.val().length;
            display.text(limit - len);
        });
 
    };
 
}(jQuery));
1
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
01.09.2014, 08:14  [ТС] 7
xenohunter, Огромное спасибо! Только как ее вызвать?)
0
Дзен-программист
122 / 87 / 16
Регистрация: 10.04.2013
Сообщений: 253
01.09.2014, 09:53 8
illya05, почти так же, как и вашу версию, только аргументы я местами поменял:
Javascript
1
2
3
$(document).ready(function () {             
    $("textarea").limit("#charsLeft", 500); // и число не строкой
});
0
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
01.09.2014, 16:40  [ТС] 9
xenohunter, Не выводит:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<form name="email_form" method="POST" onsubmit="return validate_email_form();">
                                    <input name="invite" type="hidden" value="'.$_POST['code'].'">
                                    <p class="name">From:<span class="red">*</span><span class="red" id="inc_006" style="display:none;font-style:oblique;font-weight:bold;"> <-- Type the E-mail it will be send from!</span></p>
                                    <input name="from" type="text" maxlength="50" class="input" style="width:200;">
                                    <p class="name">To:<span class="red">*</span><span class="red" id="inc_007" style="display:none;font-style:oblique;font-weight:bold;"> <-- Type the valid E-mail!</span></p>
                                    <input name="to" type="text" maxlength="50" class="input" style="width:200;">
                                    <p class="name">Subject:</p>
                                    <input name="subject" type="text" maxlength="255" class="input" style="width:200;">
                                    <p class="name">Text:</p>
                                    <textarea name="text" class="mail_textarea" style="width:700px;height:240px;"></textarea>
                                    <div class="float" style="width:500px;max-width:500px;height:45px;">
                                        <p style="font-weight:bold;">Chars left: </span><span id="charsLeft" style="font-weight:bold;"></p>
                                        <p>'.help_gen().'<span class="red">*</span><span class="red" id="inc_008" style="display:none;font-style:oblique;font-weight:bold;"> <-- Type the correct answer!</span></p>
                                    </div>
                                    <input type="submit" name="send" value="Send!" class="mail_button_free" style="margin-top:5px;">
                                    <div class="clear"></div>
                                </form>
                                <script type="text/javascript">
                                    $(document).ready(function () {             
                                    $("textarea").limit("#charsLeft", 500); // и число не строкой
                                    });
                                </script>
...
0
Дзен-программист
122 / 87 / 16
Регистрация: 10.04.2013
Сообщений: 253
01.09.2014, 18:52 10
illya05, попробуйте через id подключить, может быть, у вас ещё textarea на странице есть.
0
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
01.09.2014, 18:59  [ТС] 11
xenohunter, Не хочет
0
Дзен-программист
122 / 87 / 16
Регистрация: 10.04.2013
Сообщений: 253
01.09.2014, 21:54 12
illya05, у вас в 12 строке закрывающий тег span до открывающего стоит. Хотя, у меня работает даже с неправильным тегом. Вы jQuery и скрипт, который я дал, не забыли подключить?
0
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
01.09.2014, 23:54  [ТС] 13
xenohunter, Подключил

HTML5
1
2
<script type="text/javascript" src="{base_url}/app/tpl/script/jquery.js"></script>
<script type="text/javascript" src="{base_url}/app/tpl/script/text.js"></script>
Text.js
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//(function($){$.fn.extend({limit:function(limit,element){var interval,f;var self=$(this);$(this).focus(function(){interval=window.setInterval(substring,100)});$(this).blur(function(){clearInterval(interval);substring()});substringFunction="function substring(){ var val = $(self).val();var length = val.length;if(length > limit){$(self).val($(self).val().substring(0,limit));}";if(typeof element!='undefined')substringFunction+="if($(element).html() != limit-length){$(element).html((limit-length<=0)?'0':limit-length);}";substringFunction+="}";eval(substringFunction);substring()}})})(jQuery);
(function ($) {
 
    $.fn.limit = function (elem, limit) {
 
        var target = this,
            display = $(elem);
 
        target.on('focus keyup', function () {
            var len = target.val().length;
            display.text(limit - len);
        });
 
    };
 
}(jQuery));
Форма:
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
26
27
28
if(!$_GET['submit'] == 'yes'){
                    $content .= '
                        <div id="mail_block" class="center_mainpage">
                            <p class="name">For contact us please use the form below! | <a href="{base_url}" class="about"> Home</a></p>
                            <noscript><p class="red">Please, enable javaScript for correct work!</p></noscript>
                            <p class="gray_line"></p>
                            <form action="" name="contact_form" method="POST" onsubmit="return validate_form();">
                                <p class="name">Name:</p>
                                <input name="name" type="text" size="25" maxlength="12" class="input">
                                <p>&nbsp;</p>
                                <p class="name">E-mail:</p>
                                <input name="email" type="text" size="25" maxlength="30" class="input">
                                <p>&nbsp;</p>
                                <p class="name">Report:<span class="red">*</span><span class="red" id="inc_002" style="display:none;font-style:oblique;font-weight:bold;"> <-- Type the report!</span></p>
                                <textarea name="content" cols="100" rows="10" class="textarea float"></textarea>
                                <input type="submit" value="Send!" name="feedback" class="button float">
                                <div class="clear">
                            </form><span style="font-weight:bold;">Chars left: </span><span id="charsLeft" style="font-weight:bold;"></span>
                            <span style="margin-left:20px;">'.help_gen().'<span class="red">*</span><span class="red" id="inc_001" style="display:none;font-style:oblique;font-weight:bold;"> <-- Type the correct answer!</span></span>
                                
                            <script type="text/javascript"> 
                                $(document).ready(function () {             
                                $(".textarea").limit("#charsLeft", 500); // и число не строкой
                                }); 
                            </script> 
                        </div>
                    ';
                }
0
Дзен-программист
122 / 87 / 16
Регистрация: 10.04.2013
Сообщений: 253
02.09.2014, 02:03 14
illya05, копирую ваш HTML-код, всё работает. Вы пробовали написать что-то в textarea? Может быть, только при загрузке страницы не отображается, а при фокусе на этом поле появляется? В любом случае, сделал так, чтобы и при запуске количество символов отображалось:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(function ($) {
 
    $.fn.limit = function (elem, limit) {
 
        var target = this,
            display = $(elem);
 
        target.on('focus keyup setlimit', function () {
            var len = target.val().length;
            display.text(limit - len);
        }).trigger('setlimit');
 
    };
 
}(jQuery));
0
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
02.09.2014, 16:50  [ТС] 15
Не работает(( Напишите полностью Ваш код, пожалуйста. Может у Вас другая версия JQuery?
0
Дзен-программист
122 / 87 / 16
Регистрация: 10.04.2013
Сообщений: 253
02.09.2014, 21:48 16
illya05, если у вас не ниже 1.7, то должно работать. У меня 2.1.1, но это не принципиально. Я этот скрипт в консоли написал, когда Яндекс открыт был, там 1.8.3. Так я ваш код скопировал, вставил его в body на пустой странице с подключёнными jQuery и своим скриптом, и всё заработало.
1
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
02.09.2014, 23:42  [ТС] 17
xenohunter, Странно...

Добавлено через 33 минуты
Все! Просто NetBeans не тот проект редактировал... А в том скрипте я просто не подключил 1 библиотеку (maskedinput.js). Ваш скрипт тоже работает, Спасибо!
0
Дзен-программист
122 / 87 / 16
Регистрация: 10.04.2013
Сообщений: 253
03.09.2014, 00:05 18
illya05, да, бывает иногда. Рад, что у вас всё получилось!
1
03.09.2014, 00:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.09.2014, 00:05
Помогаю со студенческими работами здесь

Написать программу, которая определяет, сколько символов введено с клавиатуры и сколько из них числовых символов
Нужна помощь. Написать программу, которая определяет, сколько символов введено с клавиатуры и ...

Сколько в строке различных символов и сколько раз каждый из этих символов встречается
Нужно написать программу, которая принимает строку символов, определяет, сколько в ней различных...

Определить сколько полных недель и сколько недель осталось до конца года
дан n день текущего года. определить сколько полных недель и сколько недель осталось до конца года...

Определить, сколько символов введено с клавиатуры и сколько из них числовых символов
Ребят не получается(( Помогите пожалуйста


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru