Как я могу определить, был ли текст усечен, когда я копирую текст в поле ввода с атрибутом maxlength


HTML input элемент имеет атрибут maxlength, который предотвращает ввод текста длиннее, чем maxlength . При вставке текста в поле ввода, если текст длиннее максимальной длины, он будет усечен до точной длины максимальной длины. Как я могу сказать, был ли текст усечен или нет, пожалуйста?

Спасибо.

1 4

1 ответ:

Предполагая, что вы хотите знать, совпадает ли длина значения входного элемента с максимальной длиной этого элемента, вы можете сделать что-то вроде этого (используя JQuery).

var $el =  $("#myInputElement")
var l = $el.val().length;
var ms = $el.attr("maxlength");
var m = parseInt(ms, 10);

// at this point m and l are maxlength and actual length
Это, однако, не то же самое, что усеченное значение, это может быть просто такая точная длина.

Если вы хотите знать, продолжает ли пользователь писать после достижения максимальной длины,вы можете посмотреть на событие keyup и определить, сфокусирован ли ввод. Однако, чтобы сравнить буфер обмена с вашими входными данными, возможно, вам придется прибегнуть к вспышке.

Короче говоря, хорошего решения не существует.