Select ser obrigatório selecionar um valor diferente

30/11/2020

0

Eu tenho quatro input type="time" na minha página e a frente deles um select. Por padrão meu select vem disabled. Eu fiz um script que habilita meu select somente se pelo menos um dos quatro input type="time" for preenchido. O primeiro item do meu select é "JUSTIFICAR MARCAÇÃO" e os demais itens são carregados com itens de uma tabela do meu banco de dados.

O que eu gostaria é o seguinte, existe a possibilidade de, se pelo menos um dos quatro input type="time" estiver preenchido, ao habilitar o select, ser obrigatório selecionar um valor neste select diferente do primeiro valor, ou seja, um valor diferente do "JUSTIFICAR MARCAÇÃO".

Existe essa possibilidade?

Segue abaixo um código de exemplo com os quatros <input type="time"> e o select:

<input type="time" id="hora001" name="hora001" onchange="HabilitaSelectJust()">
<br>
<input type="time" id="hora002" name="hora002" onchange="HabilitaSelectJust()">
<br>
<input type="time" id="hora003" name="hora003" onchange="HabilitaSelectJust()">
<br>
<input type="time" id="hora004" name="hora004" onchange="HabilitaSelectJust()">
<br>
<br>
<select name="justificativa0" id="justificativa0" disabled>
<option>JUSTIFICAR MARCAÇÃO</option>
<option value="11">Abonado </option>
<option value="65">Admissao </option>
<option value="21">Atestado </option>
<option value="6">Compensação </option>
<option value="13">Crachá com Defeito </option>
<option value="57">Escola </option>
<option value="8">Esqueceu Cartão/Crachá </option>
<option value="61">Esqueceu de Registrar Ponto </option>
<option value="75">Falta de Energia Eletrica </option>
<option value="81">Home Office </option>
</select>


E agora, segue meu javascript que habilita o campo select caso pelo menos um dos quatro <input type="time"> esteja preenchido:

<script>
function HabilitaSelectJust() {
        if(document.getElementById("hora001").value == ""
        && document.getElementById("hora002").value == ""
        && document.getElementById("hora003").value == ""
        && document.getElementById("hora004").value == "") {
        document.getElementById("justificativa0").setAttribute("disabled","disabled");
    } else {
        document.getElementById("justificativa0").removeAttribute("disabled");
    }
}
</script>
Carlos Massam

Carlos Massam

Responder

Post mais votado

30/11/2020

Olá, amigo. Tudo bem?

Quando você for dar "POST" desta página, na página que recebe o envio coloque:
if($_POST["justificativa0"] == empty){
///aqui coloque o que acontece.
}


Também pode colocar uma função javascript que verifique, ao efetuar o post, se tem valor no justificativa:
function verificaValor(){
if(document.getElementById("justificativa0").value =="'){
alert("campo não pode ser vazio");
}
}


O que estou te passando, é somente um esboço, cabe a você adaptar este código para o seu cenário.

Espero ter ajudado. :D

Alex William

Alex William
Responder

Mais Posts

30/11/2020

Carlos Massam

Alex William, deu certo com o Alert. Muito obrigado.
Só tive um probleminha que mesmo dando o alert a página dava um submit ao clicar no OK do alert, daí eu coloquei na function, após o alert um "return false;" e em vez de chamar a function no evento onsubmit do Form eu chamei no evento onclick do button submit.
Meu botão ficou assim:

<button type="submit" name="btnEnviar" class="btn btn-primary" disabled onclick="return AlertJust()"> Inserir Marcações</button>
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar