То, что я в основном хочу сделать, это проверить значения, введенные пользователем в поле ввода для двух отдельных массивов. Один из них представляет собой массив слов, которые создавали бы ошибку, а другой - это массив слов, который вызывал бы предупреждение. Я создал эти 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, так что можем ли мы, как блокирующая петрушка прекратить проверку формы.
Для 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;
}
}
});