добавление двух валидаторов в Parsley.js

0

То, что я в основном хочу сделать, это проверить значения, введенные пользователем в поле ввода для двух отдельных массивов. Один из них представляет собой массив слов, которые создавали бы ошибку, а другой - это массив слов, который вызывал бы предупреждение. Я создал эти 2 функции, и они, похоже, отлично работают, когда они связаны двумя разными полями

 , warning: function () {
      var that = this;
      return {
            validate: function (val,arrayRange) {
                    var warningWords = new Array();
                    warningWords[0]="Cricket";
                    warningWords[1]="Football";
                for (var i = 0; i < warningWords.length; i++) {
                        if(val.toLowerCase()===warningWords[i].toLowerCase())
                            return false;
                }
                return true;
        }
        , priority: 32
      }
    }
  , wrong: function () {
      var that = this;
      return {
            validate: function (val,arrayRange) {
                    var errorWords = new Array();
                    errorWords[0]="Justin";
                    errorWords[1]="Chester";
                for (var i = 0; i < errorWords.length; i++) {
                        if(val.toLowerCase()===errorWords[i].toLowerCase())
                            return false;
                }
                return true;
        }
        , priority: 32
      }
    }

и HTML

  <label for="email">ERROR :</label>
<input name="message1" id="error" parsley-trigger="keyup" parsley-wrong="" ></input>

<label for="message">Warning</label>
<input name="message" parsley-trigger="keyup" parsley-warning=""></input>
<button type="submit">Submit</button>

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

В-третьих, можно ли отправить форму, даже если предупреждающие функции заставляют поле быть недействительным? Его легко достичь с помощью JS, так что можем ли мы, как блокирующая петрушка прекратить проверку формы.

Теги:
parsley.js

1 ответ

0

Для Q1 вы должны иметь несколько настраиваемых валидаторов на одном и том же входе, так же, как вы можете использовать более одного встроенного валидатора из петрушки. Поднимите или опустите приоритеты, если вы хотите принудительно выполнить проверку.

В ответ на Q2 вы можете добавить дополнительные классы во входные данные, чтобы изменить стиль обработки циклы. Вот пример:

input.parsley-error {
    background-color: #f00;
}

input.parsley-error.warning {
    background-color: #ff0;
}

Поэтому, если у вас должны быть оба валидатора в одном и том же поле ввода, вы могли бы заставить валидатор предупреждения добавлять класс.warning, когда он возвращает false и удаляет этот класс при возврате true.

Для Q3 вы должны иметь возможность отправить форму, несмотря на проблемы проверки, переопределив прослушиватель onFormValidate и верните true, даже если параметр isFormValid является ложным.

$('#formId').parsley({
    listeners: {
        onFormValidate: function(isFormValid, event, ParsleyForm) {
            return true;
        }
    }
});
  • 0
    У вас может быть несколько активных встроенных валидаторов петрушки в одном поле? Я не смог найти пример этого. У вас есть пример?

Ещё вопросы

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