как добавить проверку формы с несколькими правилами в одном текстовом поле,
и разные действия в зависимости от правила
например, модуль faq, с заранее заданными вопросами, пользователь может сохранять и / или публиковать свои ответы.
У меня есть форма с 1 текстовой областью и 2 кнопками
1 кнопка отправляет форму для сохранения введенного значения в базе данных как черновик
Кнопка 1 отправляет форму для сохранения и публикации введенного значения.
<form>
<input type="hidden" class="answerdraft"/>
<label class="answerlabel" for="answer">Answer:</label>
<textarea name="answer" class="answer" rows="8" cols="40"></textarea>
<input class="submitAnswer" type="submit" value="Save"/>
<input type="button" class="publishAnswer" value="Save & Publish"/>
</form>
при загрузке страницы, существующее черновое значение (если оно есть) отображается внутри текстового поля,
пользователь не должен быть в состоянии сохранить, но может публиковать
если поле пустое, пользователь не сможет сохранить или опубликовать
если поле содержит текст (и отличается от существующего черновика), пользователь может сохранить и / или опубликовать.
Я уже некоторое время использую jquery validate, но в основном с базовой проверкой обязательных полей и тестированием регулярного выражения для электронной почты и тому подобного,
но мне неясно, как я могу справиться с вышесказанным, чтобы правильно проверить
Я попробовал (код ниже)
текущий код:
для удобства чтения: объект вопроса - это контейнер div, в котором находится форма.
$("textarea.answer", question).validate({
valid: function(val){
var answerdraft = $('input.answerdraft', question).val();
enable_button($('.submitAnswer', question));
enable_button($('.publishAnswer', question));
return val != "" && !val.match(/^\s+$/) && (val != answerdraft);
},
errorMessage: function(val){
var answerdraft = $('input.answerdraft', question).val();
if(val == answerdraft)
{
disable_button($('.submitAnswer', question));
enable_button($('.publishAnswer', question));
}
else
{
disable_button($('.submitAnswer', question));
disable_button($('.publishAnswer', question));
}
return _t.validationanswerrequired;
},
appendCompletionIcon: true
});
Это не совсем то, что я хочу, оно использует только 1 правило, а затем в методе ошибок я проверяю, чтобы установить правильные включенные кнопки, но это означает, что кнопки включаются правильно, но текстовое поле иногда получает состояние ошибки, когда оно не нужно показывать ошибку, скорее нейтральное состояние.
я считаю, что мне нужно будет переделать мою логику, не делая это внутри 1 valid: или error: function, но используя опцию rules, но неясно, как я могу связать функцию включения / выключения с кнопками с объектом rules ,
Любой, кто укажет мне правильное направление, очень приветствуется.