ограничьте, сколько символов может быть вставлено в текстовой области

Действительно ли возможно обнаружить, сколько символов вставляется в текстовую область HTML и отменяет вставку если вне предела?

Править: то, что я пытаюсь сделать, предотвращают пользователя, вставляющего значительное количество символов (~3 миллиона), потому что он разрушает некоторые браузеры. Таким образом, я хочу отменить вставку, прежде чем их браузер запрется. Я делаю редактора документа, где пользователи, вероятно, попробуют это. Но они могут ввести столько, сколько они хотят.

11
задан hoju 3 February 2010 в 14:08
поделиться

4 ответа

вы можете сделать это в jQuery следующим образом:

$(document).ready(function(){
function limits(obj, limit){

    var text = $(obj).val(); 
    var length = text.length;
    if(length > limit){
       $(obj).val(text.substr(0,limit));
     } else { // alert the user of the remaining char. I do alert here, but you can do any other thing you like
      alert(limit -length+ " characters remaining!");
     }
 }


$('textarea').keyup(function(){

    limits($(this), 20);
})

  })

просмотреть демо-версию здесь .

11
ответ дан 3 December 2019 в 05:34
поделиться

Я предпочитаю использовать статические заводские методы следующего рода:

public final class CollectionUtils {
    private CollectionUtils() {  
    }

    public static <T> List<T> list(T... data) {
        return Arrays.asList(data);
    }

    public static <T> ArrayList<T> newArrayList() {
        return new ArrayList<T>();
    }

    public static <T> ArrayList<T> newArrayList(T... data) {
        return new ArrayList<T>(list(data));
    }
}

Таким образом, вы можете использовать их в вашем коде следующим образом:

import static CollectionUtils.list;
import static CollectionUtils.newArrayList;

public class Main {
    private final List<String> l1 = list("a", "b", "c");
    private final List<String> l2 = newArrayList("a", "b", "c");
}

Таким образом, вы получаете относительно компактный способ создания и заполнения списков и не нужно дублировать общие объявления. Обратите внимание, что метод list просто создает представление списка массива. Нельзя добавлять элементы в него позже (или удалять). При этом newArrayList создает обычный объект ArrayList .

Как отметил Йоахим Зауэр , эти полезные методы (и многие другие полезные вещи) можно найти в библиотеке Google Collections (которая сейчас является частью проекта Guava ).

-121--3926407-

Мы использовали долгий опрос Джетти в течение некоторого времени и были довольно довольны этим. Мы никогда не были близки к 10K + параллельным пользователям , как было продемонстрировано разработчиками Jetty. Однако добавленные накладные расходы на 300-400 одновременных соединений Cometd на наших серверах низкого уровня были почти не заметны. В другой статье объясняется кластеризация Jetty и Cometd с помощью Terracotta (которая является еще одной удивительной частью программного обеспечения).

-121--3505009-

В IE можно использовать событие onPaste . ( Документация MSDN )

В Firefox, Safari, Opera и Chrome можно использовать событие onInput ( Dottoro.com ссылка ). Это событие возникает при изменении текстового содержимого элемента через интерфейс пользователя, включая вставку.

2
ответ дан 3 December 2019 в 05:34
поделиться

Я бы использовал jQuery и добавил обработчик событий для текстового поля. Когда обработчик срабатывает, подсчитайте и отреагируйте по желанию.

0
ответ дан 3 December 2019 в 05:34
поделиться
$("textarea").blur(function(event) {
    var maxLength = 3000000;
    var length = this.value.length;
    if (length > maxLength) {
        //reassign substring of max length to text area value
        this.value = this.value.substring(0, maxLength);
        alert(maxLength + ' characters allowed, excess characters trimmed');
    }
});

Этот jquery прикрепляет анонимную функцию к текстовым областям, это обрезает текст и предупреждает пользователя, вы также можете прикрепить его к событию нажатия клавиши.

См .: http://viralpatel.net/blogs/2008/12/set-maxlength-of-textarea-input-using-jquery-javascript.html для получения дополнительных сведений об этом.

6
ответ дан 3 December 2019 в 05:34
поделиться
Другие вопросы по тегам:

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