Veja como fazer um simples validação com Javascript e Bootstrap 5.
Lembre-se de que uma validação do lado do servidor é sempre recomendada. Validações do lado do cliente servem para melhorar a experiência do usuário, impede que um fomrulário inválido seja enviado sem necessidade.
Créditos https://www.youtube.com/@maroquio
Código testado.
<div class="row">
<div class="col-12">
<div id="error_log_formulario_x" class="alert alert-danger d-none"></div>
<form id="formulario_x" action="salvar.php" method="post" class="">
<label for="titulo">Título</label>
<input validate oninput="valida(this);" id="titulo" value="" type="text" name="titulo" class="form-control form-control-sm" placeholder="Informe o título do produto">
<label for="descricao">Descrição</label>
<textarea validate oninput="valida(this);" id="descricao" name="descricao" placeholder="Informe descrição" rows="3" tabindex="2" class="form-control"></textarea>
<label for="selecionar">Opções*</label>
<select class="form-control" validate onchange="valida(this)" name="selecionar" id="selecionar">
<option value=""> (Selecione um item) </option>
<option value="2"> 002 </option>
<option value="3"> 003 </option>
</select>
<a onclick="validaSubmit('formulario_x');" class="btn btn-info mt-2 ">Salvar</a>
</form>
</div>
</div>
</div>
<script>
function validaSubmit(formEl = null) {
const form = document.getElementById(formEl);
const erroElement = document.querySelector('#error_log_formulario_x');
let erros = 0;
Array.from(form).forEach(function(el, index) {
if (el.hasAttribute('validate') && el.value == "") {
erros++;
addRemoveClass(el, 'is-invalid', 'is-valid');
} else {
addRemoveClass(el, 'is-valid', 'is-invalid');
}
});
if (erros == 0 && form) {
form.submit();
}
console.log(erros, (erros == 0 && status == 1), form);
}
function addRemoveClass(el, add, remove) {
el.classList.remove(remove);
el.classList.add(add);
}
function valida(el) {
console.log(el);
if (el.hasAttribute('validate') && el.value == "") {
el.classList.remove('is-valid');
el.classList.add('is-invalid');
} else {
el.classList.add('is-valid');
el.classList.remove('is-invalid');
}
}
</script>