Usuário com melhor resposta
Por que apenas o meu primeiro alerta é disparado ?

Pergunta
-
Boa Tarde
Por que apenas o meu primeiro alerta é disparado na minha função javascript abaixo ?
<script>
function ddAddressItem_change(valor)
{
if (valor == "54" || valor == "51" || valor == "63" || valor == "64" || valor == "65" || valor == "66" || valor == "67" || valor == "44")
{
alert("Atenção: Nesta opção de envio será cobrado a taxa a pagar do sedex conforme sua região.");
}
if (valor == "39" || valor == "40" || valor == "41" || valor == "42" || valor == "43" || valor == "44" || valor == "45" || valor == "46" || valor == "47" || valor == "48" || valor == "49" || valor == "50" || valor == "51" || valor == "52" || valor == "53" || valor == "54" || valor == "55" || valor == "56" || valor == "57" || valor == "58" || valor == "59" || valor == "60" || valor == "61" || valor == "62")
{
var data = new Date();
var dia = data.getDay();
if (dia > 8)
{
alert("Atenção: Prazo limite para compra foi finalizado");
}
}
}
function bodyLoad()
{
ddAddressItem_change(document.getElementById('ddAddressItem').value);
}
</script>
Respostas
-
Poderia nos explicar o que voce pretende fazer aqui:
var data = new Date(); var dia = data.getDay();
porque a funcao getDay traz o dia da semana (de 0 a 6), portanto o resultado true da expressao dia > 8 nunca vai ocorrer.
aqui esta a documentaçao: http://www.w3schools.com/jsref/jsref_getday.asp
Caso voce queira o dia do mes, a funçao correta é getDate:
http://www.w3schools.com/jsref/jsref_getdate.asp
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Ricardo-ti2016 terça-feira, 16 de agosto de 2016 18:50
- Editado William John Adam TrindadeModerator terça-feira, 16 de agosto de 2016 19:08
Todas as Respostas
-
Qual é o conteudo da variavel valor? Qual é o alert que é disparado? O "Atenção: Nesta opção de envio será cobrado a taxa a pagar do sedex conforme sua região." ou o "Atenção: Prazo limite para compra foi finalizado"?
Os criterios nao sao os mesmos.. ela só vai disparar os dois alertas se forem respeitados os criterios dos dois IFs.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
-
É disparado apenas o 1 alerta:
alert("Atenção: Nesta opção de envio será cobrado a taxa a pagar do sedex conforme sua região.");
O conteúdo da variavel valor é 54 neste caso entra nas 2 condições. Porem só o 1 alerta é disparado.
O que esta errado ?
Como resolver esse problema ?
Fico no aguardo.
Obrigado
-
Poderia nos explicar o que voce pretende fazer aqui:
var data = new Date(); var dia = data.getDay();
porque a funcao getDay traz o dia da semana (de 0 a 6), portanto o resultado true da expressao dia > 8 nunca vai ocorrer.
aqui esta a documentaçao: http://www.w3schools.com/jsref/jsref_getday.asp
Caso voce queira o dia do mes, a funçao correta é getDate:
http://www.w3schools.com/jsref/jsref_getdate.asp
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Ricardo-ti2016 terça-feira, 16 de agosto de 2016 18:50
- Editado William John Adam TrindadeModerator terça-feira, 16 de agosto de 2016 19:08
-
-
Realmente o colega Ricardo esta certo, o comando correto a se usar no seu caso é o getDate() para que possa pegar o dia do mes, refiz sua função e tomei a liberdade de melhorar seus IF(s), temos que tomar muito cuidado quando se faz instruções como a que fez, procure sempre fatorar e ver no que pode melhorar isto melhora a performance do programa, melhora o entendimento do código evita que você se perca em sua logica, sem falar na manutenção né.
Veja a possibilidade de normalizar seu banco e em vez de fazer um if monstruoso procure deixar status para que possa melhorar a maneira de saber se tem frete ou não e os pedidos que não podem ser enviados após determinado prazo.
Segue seu código reescrito
<script> function ddAddressItem_change(valor) { if (valor == "44" || valor == "51" || valor == "54" || valor >= "63" && valor <= "67") { alert("Atenção: Nesta opção de envio será cobrado a taxa a pagar do sedex conforme sua região."); } if (valor >= "39" && valor <= "62") { var data = new Date(); var dia = data.getDate(); if (dia > 8) { alert("Atenção: Prazo limite para compra foi finalizado"); } } } function bodyLoad() { ddAddressItem_change(document.getElementById('ddAddressItem').value); } </script>
Se a resposta contribuiu com seu aprendizado por favor marque como Útil
Se solucionou seu problema por favor marque como Resposta
Atenção, se seu problema foi resolvido não deixe o post aberto
Visite : www.codigoexpresso.com.br
- Editado Código Expresso quarta-feira, 17 de agosto de 2016 03:39