#javascript #jquery #css #validation
#javascript #jquery #css #проверка
Вопрос:
Моя функция проверки выглядит следующим образом.
var fname = $("#fname").val();
var lname = $("#lname").val();
function validate() {
var isValid = true;
if (!fname) {
$("#fname").attr('class', 'invalid');
isValid=false;
}
if (!lname) {
$("#lname").attr('class', 'invalid');
isValid=false;
}
Это просто изменяет класс незаполненного поля ввода.
Я знаю, что могу написать else
для каждого if
и вернуться к умолчанию ( class="valid"
), если пользователь заполнит некоторые из входных данных. Но как я могу создать что-то универсальное для всех входных данных, чтобы вернуть к классу по умолчанию входные данные, которые пользователь заполнил после первой ошибки проверки?
Комментарии:
1. вы можете использовать
addClass
метод. добавьтеinvalid
класс в object$('your_selector').addClass('invalid')
и после проверки просто используйте$('your_selector').removeClass('invalid')
Ответ №1:
В целом это было хорошо! ОДНАКО, почему избыточная обработка в вашем коде? Это добавит ненужный стресс. Поскольку вы, для того, что вы «решили», добавите «допустимый» класс ко ВСЕМ типам ввода text или password, просто добавьте это к фактическому элементу ввода в прямом коде:
<input class='valid' ..... />
Теперь вернемся к вашей первоначальной проверке: почему бы не сделать ее универсальной?:
function validate(formField) {
if !formField $('#' formField).removeClass('valid').addClass('invalid');
}
Или что-то в этом духе…
Комментарии:
1. Я уже добавил допустимый класс прочитайте мой ответ еще раз. Это функция нажатия клавиши «добавит «допустимый» класс ко ВСЕМУ тексту ввода или паролю» — она добавит допустимый класс только тогда, когда пользователь нажимает клавишу
2. Одним из способов было бы: form …. onSubmit=’validateIt(this);’ и проверка того, что это будет проходить через элементы в форме и отправлять каждый элемент для проверки (item). Пример: функция validateIt(FormID) { для каждого … проверка (элемента) … }
3.
if !formfield
Бит синтаксически недопустим. Будет ли удаление этих двух токенов ближе к тому, что вы пытаетесь сделать.4. Что вы исправили? ПОЭТОМУ должна быть возможность просто вычеркнуть то, что исправляют так называемые «редакторы». Теперь я не знаю, насколько я могу доверять вам (не то чтобы я не доверяю), что вы исправили … проблему, которой не существовало… в течение 13 дней.
Ответ №2:
Вы можете либо предположить, что все действительно, а затем попытаться опровергнуть это, либо попытаться доказать его достоверность. В приведенном ниже примере используется первый подход и всем классам присваивается значение «valid», чтобы соответствовать этому.
function validate() {
// Get the current form input state.
var fname = $("#fname");
var lname = $("#lname");
// Assume everything valid until proven otherwise.
var isValid = true;
fname.attr('class', 'valid');
lname.attr('class', 'valid');
if (!fname.val()) {
fname.attr('class', 'invalid');
isValid=false;
}
if (!lname.val()) {
lname.attr('class', 'invalid');
isValid=false;
}
return isValid;
}
Ответ №3:
ОК. Я нашел способ
$('input[type="text"],input[type="password"]').keypress(function () {
$(this).attr('class', 'valid');
});