Как получить все поля в форме с атрибутом maxlength, используя javascript - PullRequest
1 голос
/ 08 апреля 2020

Я использую html5 для разработки своих представлений и столкнулся с ситуацией с maxlength, у меня есть несколько полей в форме с атрибутом maxlength.

На самом деле maxlength работает нормально в desktop browsers, но не работает в android browsers Так что я хочу добиться этого, используя некоторую явную javascript проверку.

Вместо того, чтобы получать каждый элемент в форме, основанный на идентификаторе, например document.getelementbyid('firstname').maxLength; Я хочу получить все элементы в форме с атрибутом maxlength.

Поэтому мне нужно универсальное c решение для этого ...

Спасибо !!

На самом деле я пробовал решение, как показано ниже:

$('input[maxlength]').on('keydown', function (event) {
    var $this = $(this);
    if ($this.val().length > $this[0].maxLength) {
        event.preventDefault();
    }
});

Это не работает ..

1 Ответ

1 голос
/ 08 апреля 2020

Я бы использовал метод фильтра jQuery вместе с функцией hasAttribute. Это отфильтровывает объект только по тем элементам, которые имеют желаемый атрибут.

function filterByAttribute(dom, attr) {
  var answer = dom.filter(function(input){
    return (this).hasAttribute(attr);
  });
  return answer;
}

var objArray = filterByAttribute($('input'), 'maxlength');

objArray.on( ... <your code here> ... );

https://api.jquery.com/filter/

https://www.javascripttutorial.net/javascript-dom/javascript-hasattribute/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...