Количество символов проверки JQuery - PullRequest
1 голос
/ 16 февраля 2011

Я использую некоторую проверку jquery, и все это прекрасно работает, но когда пользователь вводит больше символов, чем разрешено в текстовом поле, я хотел бы, чтобы в сообщении проверки говорилось: «Вам разрешено использовать только от 10 до 200 символов. Вы набрали 213 символов '.

Текущий код выглядит так:

rules: {
            Description: { rangelength: [10, 200] }
        },
        messages: {
            Description: "You are only allowed between 10 and 200 characters."
        }

У кого-нибудь есть идеи?

edit: Было бы хорошо, если бы это соответствовало стилю программирования, но если это невозможно, мне просто придется найти другой способ обойти это.

Ответы [ 4 ]

3 голосов
/ 16 февраля 2011
<html>
    <head>
        <title>Javascript</title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
        <script src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js" type="text/javascript"></script>



        <script>
            $(function(){
                $('#myform').validate({
                    rules: {
                        field: {
                            required: true,
                            rangelength: [2, 6]
                        }
                    },
                    messages: {
                        field: {
                            rangelength: function(range, input) {
                                return [
                                    'You are only allowed between ',
                                    range[0],
                                    'and ',
                                    range[1],
                                    ' You have typed ',
                                    $(input).val().length,
                                    ' characters'                                
                                ].join('');

                            }
                        }
                    }                      
                });
            });

        </script>
    </head>
    <body>
        <form id="myform">
            <input id="field" name="field" type="text"/>
            </br>
            <input type="submit" value="submit"/>
        </form>
    </body>
</html>
1 голос
/ 18 декабря 2016
<html>
<head>
    <title>Javascript</title>
    <script src="https://code.jquery.com/jquery-3.1.1.js" type="text/javascript"></script>
    <script src="http://cdn.jsdelivr.net/jquery.validation/1.15.0/jquery.validate.min.js" type="text/javascript"></script>



    <script>
        $(function(){
              jQuery.validator.addMethod("rangelength", function(value, element, param) {
                param[2]=value.length;
                return this.optional(element) || ((value.length > param[0]) && (value.length < param[1]));
                },'You are only allowed between {0} and {1}. You have typed {2} characters');
            $('#myform').validate({
                rules: {
                    field: {
                        required: true,
                        rangelength: [2, 6]
                    }
                }                      
            });
        });

    </script>
</head>
<body>
    <form id="myform">
        <input id="field" name="field" type="text"/>
        </br>
        <input type="submit" value="submit"/>
    </form>
</body>

Ну вот!

0 голосов
/ 16 февраля 2011

Мы используем этот крошечный плагин:

(function ($) {
  $.fn.textAreaLimit = function( limit, element ) {
    return this.each( function () {
      var $this = $(this);
      var displayCharactersLeft = function(charactersLeft) {
        if( element ) {
          $(element).html( (charactersLeft <= 0) ? '0' : charactersLeft );
        }
      };

      $this.bind('focus keypress blur click', function() {
        var val = $this.val();
        var length = val.length;
        if(length > limit) {
          $this.val( $this.val().substring(0, limit) );
        }
        displayCharactersLeft( limit-length );
      });

      displayCharactersLeft( limit-$this.val().length );
    });
  };
})(jQuery);

Вы можете использовать его так:

$('textarea').textAreaLimit(500, ".chars-left");

Элемент .chars-left будет обновлен с количеством оставшихся символов.Конечно, работает с любым текстовым полем.

0 голосов
/ 16 февраля 2011
function LimitText(ref, iminlength, imaxlength) {
            if ((ref.value.length < iminlength) || (ref.value.length > imaxlength)) {
                alert("You are only allowed between " + iminlength + " and " + imaxlength + " characters\nCurrent length is: " + ref.value.length);
                ref.focus();
            }
        }


 <textarea name="myTextArea" rows="5" cols="5" onblur="LimitText(this,10,160)" ></textarea>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...