JavaScript click the button and calculate a difference

2

I need the result of the transformation to appear when I click the Calculate button.

HTML

<div id="principal">
    <form id="form">
        <input id="valorX" type="text" size="15" />
        <select id="conversao">
            <option id1="valor" value="">escolha uma conversao</option>
            <option id2="valor" value="1">F->C</option>
            <option id3="valor" value="2">C->F</option>
        </select>

        <input id="resultado" type="text" size="15" disabled="true" />
        <input id="calcular" type="button" value="Calcular" onclick="opcao()" />
        <input id="limpar" type="reset" value="Resetar" />
    </form>
</div>

JavaScript

function opcao() {
    if (document.getElementById("conversao").value == "") {
        alert("Selecione uma conversão");
    }
    if (document.getElementById("conversao").value == "1") {
        if (valida()) {
            FC();
        }
    }
    if (document.getElementById("conversao").value == "2") {
        if (valida()) {
            CF();
        }
    }
}

function valida() {
    if (document.getElementById("valorX").value == "" || document.getElementById("valorX").value == "") {
        alert("Valor não informador");
        return false;
    } else {
        if (validanumero()) {
            return true;
        } else {
            return false;
        }
    }
}

function validanumero() {
    var valorX = document.getElementById("valorX").value;
}
//}
function FC() {
    var valorX = document.getElementById = "2" ("valorX").value;
    var resultado = (valorX / 5 = (valorX - 32) / 9)
    document.getElementById("resultado").value = resultado;
}

function CF() {
    var valorX = document.getElementById("valorX").value;
    var resultado = (valorX / 5 = (valorX - 32) / 9)
    document.getElementById("resultado").value = resultado;
}
    
asked by anonymous 02.10.2016 / 21:47

1 answer

0

This code can be best planned. You can not have assignment operator ( = ) here:

var resultado = (valorX / 5 = (valorX - 32) / 9);

But beyond this syntax error you can do the simplest thing.

Suggestion:

function opcao() {
    var escolha = document.getElementById("conversao").value;
    if (!escolha.trim()) return alert("Selecione uma conversão");
    var valor = valida();
    if (!valor) return;
    var convertido = converter(escolha, valor);
    document.getElementById("resultado").value = convertido + (escolha == 'FC' ? '℃' : '℉');
}

function valida() {
    var valor = document.getElementById("valorX").value;
    if (!valor.trim()) return alert("Valor não informador");
    else return Number(valor);
}

function converter(dePara, valor) {
    return dePara == 'FC' ? (valor - 32) * 5 / 9 : (valor * 9 / 5) + 32;
}
<div id="principal">
    <form id="form">
        <input id="valorX" type="text" size="15" />
        <select id="conversao">
            <option id1="valor" value="">escolha uma conversao</option>
            <option id2="valor" value="FC">F->C</option>
            <option id3="valor" value="CF">C->F</option>
        </select>

        <input id="resultado" type="text" size="15" disabled="true" />
        <input id="calcular" type="button" value="Calcular" onclick="opcao()" />
        <input id="limpar" type="reset" value="Resetar" />
    </form>
</div>

jsFiddle: link

    
02.10.2016 / 22:12