Что лучшее решение JavaScript состоит в том, чтобы ограничить длину текстовой области?

вы можете переопределить стандартную форму аутентификации

, например,

from django.contrib.auth.forms import AuthenticationForm

from django import forms


class UserLoginForm(AuthenticationForm):
    def __init__(self, *args, **kwargs):
        super(UserLoginForm, self).__init__(*args, **kwargs)

    username = forms.EmailField(widget=forms.TextInput(
        attrs={'class': 'form-control', 'placeholder': '', 'id': 'hello'}))
    password = forms.CharField(widget=forms.PasswordInput(
        attrs={
            'class': 'form-control',
            'placeholder': '',
            'id': 'hi',
        }
))

в url.py, вы также можете передать эту пользовательскую форму аутентификации, например,

from django.contrib.auth import views

from myapp.forms import UserLoginForm
urlpatterns = [

    path(
        'login/',
        views.LoginView.as_view(
            template_name="login.html",
            authentication_form=UserLoginForm
            ),
        name='login'
)
]

Вы можете переопределить шаблон входа в систему

и настроить шаблон в соответствии с вашими требованиями

<form method="post">
    {{ form.non_field_errors }}
    <div class="form-group">

        <label for="{{ form.username.id_for_label }}">Username:</label>
        {{ form.username }}
        {{ form.username.errors }}

    </div>
    <div class="form-group">

        <label for="{{ form.password.id_for_label }}">Password:</label>
        {{ form.password }}
        {{ form.password.errors }}
    </div>
    <button type="submit">Login</button>
</form>
7
задан John Topley 17 March 2009 в 14:39
поделиться

5 ответов

Мои нетехнические 0,02$

Сделайте то, что ТАК делает в их полях комментария, обеспечьте обратную связь относительно того, что остающаяся длина знака пользователя, и позвольте им идти мимо максимума, но не отправлять> 300 символов. Вот то, почему:

  • Разрешение пользователям пробежаться через максимальное количество символов позволяет им завершать идею. Они могут затем возвратиться и отредактировать ту идею. Нет ничего худшего, чем быть в конце предложения и неспособности завершить его.
  • Обеспечение обратной связи к длине знака мешает людям иметь для предположения то, в чем их длина.
  • 23
    ответ дан 6 December 2019 в 06:04
    поделиться

    Я сделал бы это этот путь:

    $ ('#textarea-id').bind (
      'change input keyup keydown keypress mouseup mousedown cut copy paste',
      function () { return ($(this).val().length <= maxlength) }
    )
    

    Столько bingings только, чтобы быть абсолютно уверенным :-)

    5
    ответ дан 6 December 2019 в 06:04
    поделиться

    Присоедините onchange событие к текстовой области. Там можно проверить если значение, больше, чем соответствующее или нет. Пример с jQuery:

    $("#textarea-id").change(function (){
      var text = $(this).val();
      if( text.length > MAX ){
        return false;
      }
    });
    
    1
    ответ дан 6 December 2019 в 06:04
    поделиться

    Это сделает это...

    function textareaMaxLen(event) {
      var max = parseInt(this.attr("maxlength"), 10);
      if(this.value.length >= max)
        this.value = this.value.substr(0, max);
    }
    
    $("textarea").keyup(textareaMaxLen).blur(textareaMaxLen);
    
    1
    ответ дан 6 December 2019 в 06:04
    поделиться

    Я сделал это как это в прошлом:

    <textarea onkeyup="checkLength(this);"></textarea>
    

    Затем реализуйте эту функцию:

    function checkLength(control) {
                if (control.value.length > 5) {
                    control.value = control.value.substr(0, 5);
                }
            }
    

    Это - довольно основной пример, прикрепляющий длину к 5, но надо надеяться дает Вам идею!

    0
    ответ дан 6 December 2019 в 06:04
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: