У меня есть форма, которая содержит около 20-25 полей. Мне нужно выполнить следующее требование
Из всех полей есть 4 отдельных поля, которые должны иметь следующую валидацию
Я получаю селектора этих полей из файла JSON. Вот пример того, как будет выглядеть поле HTML
<input type="text" name="s_18_1_2_0" value="" aria-labelledby="DC2_AP2-T_Transport_speed_-_Business_Label" aria-label="AP2-T Transport speed - Business" style="height: 30px; width: 140px;" maxlength="250" class="siebui-input-align-left ui-autocomplete-input siebui-input-popup undefined" autocomplete="off" role="combobox" tabindex="0" aria-readonly="false" aria-describedby=" s_18_1_2_0_icon">
<input type="text" name="s_18_1_8_0" value="" aria-labelledby="DC2_Pair_in_Operator_Label" aria-label="Pair in Operator trunk" style="height: 30px; width:150px;" maxlength="250" tabindex="0" class="siebui-input-align-left dc2-invalid" aria-readonly="false" title="Pair in Operator trunk is required field">
Я смог написать следующий код, чтобы выбрать все поля
for(var i = 0; i < param.length; i++){
selector = param[i].replace(/\s/g,"_") + "_Label";
input ? input += ", input[aria-labelledby=" + selector + "]" : input = "input[aria-labelledby=" + selector + "]";
$(input).each(function(e){
//if($(this).val() != "")
SiebelJS.Log(this);
});
}
Этот код выбирает поля, в которых мне нужно выполнить проверку, но основная трудность - выделить часть, поэтому мне нужны селектора полей, которые не прошли проверку. Могу ли я использовать фильтр в дополнение к каждому из них?
Любая помощь будет действительно оценена!
Сначала объявите класс в вашем стиле:
<style type="text/css">
.error {
border:1px solid red;
background-color:yellow;
}
</style>
Затем попробуйте следующий код:
var maxLimit = 0;
var minLimit = 0;
$(input).each(function () {
if ($(this).val().length < 1) {
minLimit++;
} else {
maxLimit++;
}
});
if (minLimit == $(input).length) {
$(input).addClass("error");
alert("Message for required field");
}
else if (maxLimit > 1) {
$(input).addClass("error");
alert("Message to fill only 1 input value, not more");
}
else if (minLimit != $(input).length && maxLimit < 2) {
$(input).removeClass("error");
}
Это может вам помочь.