Вы можете использовать более одного способа уменьшить ваш код, который подходит:
1) Вы можете использовать toggleClass или addClass и removeClass для обновления классов, не входящих в набор групп классов attr
2) Вы можете создать функцию, которая принимает 2 параметра один для селектора и второй для классов, и это решит проблему
3) Вы можете заказать код, чтобы предотвратить удаление и удаление ненужных условий, таких как задание класса перед условием, а при неправильном добавлении неправильного класса.
4) Вы можете сохранить общий класс в переменной
... и не только ...
в первой точке вы можете сделать это:
$('#adress').addClass("btn-lg disabled form-control");
if(adress == '')
{
$('#adress').addClass("btn-outline-danger").removeClass('btn-outline-primary');
}else{
$('#adress').removeClass("btn-outline-danger").addClass('btn-outline-primary');
}
Также вы можете построить как эта функция:
function setClasses(selector, classes){
$(selector).attr('class', claesses);
}
Также вы можете сохранить общий класс в переменной следующим образом:
var commonClass = "btn-lg disabled form-control"
Окончательный результат для примера кода:
var commonSuccessClass = "btn-outline-primary btn-lg disabled form-control";
var commonWrongClass = "btn-outline-danger btn-lg disabled form-control";
if(adress == '')
{
$('#error_adress').html("Adress is required");
$('#submit-next').attr("data-target","");
setClasses('#selector', commonWrongClass);
} else {
$('#error_adress').html("");
setClasses('#selector', commonSuccessClass);
}
и много других решений ...