Разрешить ввод только в одном поле ввода в форме

0

У меня есть форма, которая содержит около 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);
    });

}

Этот код выбирает поля, в которых мне нужно выполнить проверку, но основная трудность - выделить часть, поэтому мне нужны селектора полей, которые не прошли проверку. Могу ли я использовать фильтр в дополнение к каждому из них?

Любая помощь будет действительно оценена!

  • 0
    да, пожалуйста, используйте фильтр
Теги:

1 ответ

0

Сначала объявите класс в вашем стиле:

    <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");
        }

Это может вам помочь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню