..


Рекламные ссылки

JQuery: индикатор, чтобы показать «начинка» из текстовой

Статья написана Риккардо Брамбилла
Страница 1 из 2

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

Когда проект, я была необходимость ограничить допустимое количество символов в текстовой Я думал, что решается в несколько минут, это было не так, я нашел несколько решений в сети, но никаких убедительных меня до конца, поэтому я решил осуществить что-то обычай использованием JQuery и отличные jQueryUI , в частности, компонент пакета progessbar.

Восстановление файлов, необходимых

Colleghiamoci к http://jqueryui.com/ и нажмите на кнопку "загрузить пользовательские Build" в верхнем правом углу.
На следующей странице выберите полезных компонентов, и один из доступных виджетов мы решили взять только индикатор прогресса.

jQueryUI параметры загрузки страницы
Мы выбираем графический шаблон из выпадающего списка справа и нажмите на кнопку "Скачать". Распакуйте пакет, который вы только что скачали и найти три папки и файлы в корне:
  • CSS папку с темой, в нашем случае по умолчанию, щ-легкость
  • развитие-расслоение содержит примеры и документация
  • JS: содержит два файла, необходимые для запуска нашего решения; JQuery и JQuery-щ-1.4.4.min.js-1.8.9.custom.min.js
  • index.html: страницы, что позволяет нам увидеть пример тематические / виджеты, которые мы выбрали

Для нашего небольшого примера создадим простую структуру следующим образом:

  • распаковать папку jQueryUI (JQuery-щ-1.8.9.custom)
  • file.html пакет, содержащий текстовую
  • file.js содержащие JQuery код

Мы создаем наш HTML файл, дать ему содержательное имя (назовем mrw_jquery_txtcheck.html) и вставить в голову теги включений необходимо: ссылку на тему CSS файлов и JS Jquery и jQueryUI.






 HREF = "jquery-ui-1.8.9.custom/css/ui-lightness/jquery-ui-1.8.9.custom.css" <link type="text/css" rel="stylesheet" />







 <script type="text/javascript" src="jquery-ui-1.8.9.custom/js/jquery-1.4.4.min.js"> </ SCRIPT>







 <script type="text/javascript" src="jquery-ui-1.8.9.custom/js/jquery-ui-1.8.9.custom.min.js"> </ SCRIPT>



Добавить текстовое поле в организме:

 



 <div> <textarea name="limitedOne" id="limitedOne" style='width:250px;height:100px;'> </ TEXTAREA> </ P>

 

Затем вставьте дел, который содержит индикатор прогресса и заполнитель, чтобы дать вам представление о том, сколько символов и цифр.






 <div style="height: id="progress" 20px;"> </ P>







 Доступные <p> <span id="charCounter"> 255 </ SPAN> символов. </ P>



Теперь мы можем приступить к записи кода в отдельный файл JavaScript / JQuery с необходимыми функциями, которые затем также включить его в голову тег, мы будем называть check_textarea.js.
Прежде всего определить основные переменные, символы допускаются и те, которые доступны имеют одинаковое значение в начале:






 MAX_CHARS = 255;







 Оставшиеся = MAX_CHARS;



Затем мы определяем функцию, которая контролирует и улучшает ProgressBar и счетчик:





 checkTextareaLength функции () {





  



 current_length == неопределенная переменная = $ ("# limitedOne"). вал (). длину?

 



 0: $ ("# limitedOne") Вал () длина;..



  



 Оставшиеся = (MAX_CHARS - current_length);



	

  



 если (Оставшееся> 0) {

	

    



 $ ("# LimitedOne") ($("# LimitedOne вал ") Вал () Подстрока (0, MAX_CHARS))...;



  



 Остальное {}



    



 $ ("# CharCounter") сайтов (осталось).



    



 уаг ру = Math.floor ((((MAX_CHARS-Оставшиеся) / MAX_CHARS) * 100));



    



 . $ ('# Прогресс ») Progressbar (' значение ', р);



  



 }







 }



Давайте проанализируем код: первая строка в checkTextareaLength получает текущее значение текстового поля с помощью функции VAL () JQuery, то подсчитать количество введенных символов, читая длина атрибута.
На следующей строке дает число символов, доступных на разницу. На данный момент Есть 2 возможности.

1. Оставшиеся переменной меньше нуля (например, после копирования / вставки), если блок берет значение текстовой и ограничивает его до 255 символов с помощью родного подстроку JavaScript

 



 $ ("# LimitedOne") ($("# LimitedOne вал ") Вал () Подстрока (0, MAX_CHARS))...;

 

2. Оставшиеся больше нуля, иначе блок в первом пролет усиливается с количеством символов:

 



 $ ("# CharCounter") сайтов (осталось).

 

Затем функция вычисляет соотношение между максимальным количеством символов, которые можно и которые в настоящее время включены, раунды библиотечную функцию результате Math.floor (вниз) до ближайшего:

 



 уаг ру = Math.floor ((((MAX_CHARS-Оставшиеся) / MAX_CHARS) * 100));

 

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

 



 . $ ('# Прогресс ») Progressbar (' значение ', р);

 

Давайте напишем код, который выполняется на DOM Ready.
Мы инициализируем прогрессбар связывать и проводить события, которые вы хотите перехватить: нажатие клавиши, MouseOut, изменения и размытия. Монитор их все, чтобы перехватить событие, что пользователь должен использовать копировать / вставить.
Обратите внимание, что вызов функции откладывается на несколько сотых долей секунды через родной SetTimeout функции, поэтому обязательно, чтобы всегда иметь значение в соответствующее время, когда пользователь закончит ввод.






 $ (Function () {



  



 $ ("# Прогресс") Progressbar ().



  



 $ ("# LimitedOne.") Bind ("нажатие клавиши изменения MouseOut размытия ', функция () {



    



 SetTimeout ("checkTextareaLength ()", 200);



  



 });







 });



В той же категории ...
E-Learning
CSS (курс) CSS (курс)
Веб-дизайн и доступность в соответствии с W3C CSS и XHTML. Начиная от 29 €.
HTML (курс) HTML (курс)
Язык разметки для веб от 29 €.
Javascript (курс) Javascript (курс)
Полное руководство для сценариев на стороне клиента. С 39 €.
Рекламные ссылки