Javascript click the button and calculate a difference

Asked

Viewed 193 times

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;
}
  • Can you explain what you want this line to do var resultado = (valorX / 5 = (valorX - 32) / 9)?

  • I want the physical transformation fraction from ºC to ºF

1 answer

0

This code can be better planned. You cannot have an assignment operator (=) here:

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

But beyond that 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: https://jsfiddle.net/3xvbkg8j/

  • Sergio, what is ! no If ?

  • And the . Trim() ???

  • @Joãooliveira is negation. That is, if the value is false it reverses and gives true.

  • Ahh understood thank you

  • @Joãooliveira is used to remove whitespace at the beginning and end of a string. For example, if you have " foo ".trim() he gets only "foo" without the spaces.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.