Счетчик символов и лимитер - ясность кода - PullRequest
1 голос
/ 21 сентября 2011

Я написал маленький счетчик символов и лимитер.Вы можете проверить это здесь: Счетчик символов и лимитер

Код jQuery:

$(document).ready(function() {

$('.counter').each(function(index) {

    $('.counter p span').html('0'); // set character length to 0
    $('input', this).keyup(function() {

        var CounterDiv = $(this).parent(); //
        var Limit = $('p', CounterDiv).html().split(' / ')[1];
        var CurrentLength = $(this).val().length;

        if (CurrentLength == Limit) {

            $('p span', CounterDiv).html(CurrentLength);
            return false;

        } else if (CurrentLength > Limit) {

            var str = $(this).val();
            $(this).val(str.substring(0, str.length - 1));
            return false;

        } else {

            $('p span', CounterDiv).html(CurrentLength);

        }
    });

});

 });

Есть ли у вас какие-либо предложения, как я могу улучшить это?С синтаксисом я не уверен на 100%.

1 Ответ

3 голосов
/ 21 сентября 2011

Использовать нативный атрибут html maxlength для входных данных

вот образец: http://jsfiddle.net/8YdCh/16/

HTML

<input name="input1" type="text" maxlength="8" />

JS

$(document).ready(function() {
    $('.counter').each(function(index) {
        $('.counter p span').html('0'); // set character length to 0
        $('input', this).keyup(function() {
            var $countSpan = $(this).parent().find('.var-count'); // find the count span
            var countValue = $(this).val().length + " / "  + $(this).attr('maxlength'); // format value for count span 'current value lenght / maxlength attribute'
            $countSpan.text(countValue); // set formatted value to your column span
        });
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...