2016-10-02 4 views
1

У меня есть два входа: первый - это загрузка X-файла. второй - Y - вход для URL-адреса.jQuery - простая проверка для двух входов

До сих пор у меня есть код, который проверяет правильность Y, а затем удаляет атрибут, необходимый для X. В противном случае я хочу, чтобы X был необходим.

$(Y).blur(function(){ 
    if ($(this).is(':valid') == true) { 
     $(X).removeAttr('required') 
    } else if ($(this).is(':valid') == false) { 
     $(X).attr('required'); 
    } 
}); 

По какой-то причине этот код работает, когда вход Y действителен, он удаляет атрибут. Но, допустим, пользователь сожалеет и хочет оставить Y пустым, он не возвращает требуемый атрибут для X.

Пытался сохранить объяснение как можно более простым и ясным. Если есть недоразумение, я попытаюсь изменить этот вопрос и сделать его более ясным.

ответ

0

Самый простой способ:

$(Y).blur(function(){ 
if ($(this).is(':valid') == true && $(this).val() != '') { 
    $(X).removeAttr('required') 
} else if ($(this).is(':valid') == false || $(this).val() == '') { 
    $(X).attr('required'); 
} 

});

В этом случае, когда пользователь удаляет контент, требуемый атрибут будет возвращен (не забудьте добавить функцию обрезки, я не использовал ее в примере).

Я бы рекомендовал включить эту логику в функции проверки. Я также не люблю размытие события (юзабилити плохо), я бы рекомендовал onchange событие для проверки поля.

Смежные вопросы