Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, gostaria de saber porque esse programa não está retornando o valor correto marcado nos radiobutton e no dropdown.
http://www.utilizaweb.com.br/aposentadoria/
Poderiam me ajudar ?
Nessa linha
if ((sexo = "M") && (regra = "25")) {
da função do identificador "calcula" você está usando o operador inesperado para tentar checar se a variável com o identificador "sexo" tem um valor igual à string "M", e o mesmo acontece outras muitas vezes. Você está definindo "sexo" como a string "M" ao invés de checar se é igual.
Se você quer checar se um valor é igual à certo valor e tipo, você pode usar o operador "===" ou "==". O operador "==" converte o valor retornado em string e então checa se é igual ao próximo valor retornado convertido em string pelo operador. Se um valor e seu tipo (usando "===") é igual ao esperado então é retornado true e, obviamente, false se não.
O bloco de comandos da primeira declaração de "if" será executado se a expressão dentro do primeiro argumento não retornar um valor falso (pois você está usando o operador "&&" em um argumento do seu primeiro "if" declarado, que retorna true se ambos valores retornados não são falsos). False, null, undefined, strings vázias ("") e números negativos (como 0, -1...) são considerados valores falsos, pois são valores considerados vázios.
Atualmente,
sexo = "M"
retorna "M". É um valor verdadeiro porque é uma string contendo um caractere qualquer. O bloco de comandos do seu primeiro "if" declarado sempre é executado porque você retorna valores verdadeiros na expressão do "&&", então ele retorna true.
Você pode simplificar todas as condições para:
//forma de indicação