У меня есть в документе одна или несколько форм, которые могут иметь поля ввода / textarea / select с «атрибутами проверки»
<input class="finput" type="text" name="name" minlength=15 maxlength="255" required data-numeric>
Атрибутами проверки могут быть HTML по умолчанию или пользовательские ('data-numeric)')
У меня есть следующий код для сбора форм:
forms = document.forms;
for (var i = 0; i < forms.length; i++) {
if (forms[i].hasAttribute('data-validation')){
fields = forms[i].elements;
for (var j = 0; j < fields.length; j++)
field ....
}
}
У меня также есть список правил для проверки:
var rules = {
minlength: 0,
numericRegex: /^[0-9]+$/,
integerRegex: /^\-?[0-9]+$/,
}
Я хочу выполнить циклнад каждым полем, если у него есть одно или несколько полей для создания массива, который будет содержать DOM поля и атрибуты, если атрибуты найдены в правилах.
Я знаю, что для получения атрибутаЯ могу использовать hasAttribute
, но с моей точки зрения это выглядит неэффективно, кроме того, для таких правил, как minlength
, мне нужно также принять значение атрибута.
Я думаю, что могуиспользуйте field.attributes
, но все же я не уверен, что лучший способ собрать атрибуты - добавить только те, которые проверяются.