La salida siempre es 'F' incluso si testScore = 80. Este es el script

<script>
    function testScore(){
        var testScore = document.getElementById(score);
        if (testScore >=90){
            alert('A');
        } else if (testScore >=80) {
            alert('B');
        } else if (testScore >=70) {
            alert('C');
        } else if (testScore >=60) {
            alert('D');
        } else {
            alert('F');
    }
    }
</script>

De entrada, le pido al usuario que ingrese una calificación numérica, luego un botón debajo para convertir la calificación numérica a calificación de letras después de que el usuario hace clic.

<input type="number" id="score">
<button onclick="testScore(score)"> Calculate </button>

Gracias a todas por adelantado.

0
Eric Lin 31 oct. 2019 a las 04:26

4 respuestas

La mejor respuesta
<script>
    function testScore(){
        var testScore = document.getElementById("score").value;
        if (testScore >=90){
            alert('A');
        } else if (testScore >=80) {
            alert('B');
        } else if (testScore >=70) {
            alert('C');
        } else if (testScore >=60) {
            alert('D');
        } else {
            alert('F');
        }
    }
</script>

Necesita obtener el valor presente en control. Su código está obteniendo control en sí mismo pero no tiene valor.

2
Sailesh Babu Doppalapudi 31 oct. 2019 a las 01:35

Cambiar algunas cosas

  1. Agregue algunas comillas al onclick porque está buscando una cadena llamada "puntaje".
  2. Igual que 1 pero para la función testScore. Está buscando la identificación de la cadena de texto.
  3. Agregue .value a la función testScore al obtener el valor de la entrada. Si no es así, está obteniendo el objeto de elemento de entrada como un todo y no solo el valor que se escribe.
function testScore(){
    
        var testScore = document.getElementById("score").value;
        
        if (testScore >= 90){
            alert('A');
        } else if (testScore >= 80) {
            alert('B');
        } else if (testScore >= 70) {
            alert('C');
        } else if (testScore >= 60) {
            alert('D');
        } else {
            alert('F');
    }
    }
<input type="number" id="score">
<button onclick="testScore('score')"> Calculate </button>
1
Icewine 31 oct. 2019 a las 01:40
<script>
    function testScore(){
        var testScore = document.getElementById("score").value;
        if (testScore >=90){
            alert('A');
        } else if (testScore >=80) {
            alert('B');
        } else if (testScore >=70) {
            alert('C');
        } else if (testScore >=60) {
            alert('D');
        } else {
            alert('F');
        }
    }
</script>

Necesita obtener el valor de la identificación. Además, no creo que necesite el argumento dentro del método del botón onclick.

0
Bobtroopo 31 oct. 2019 a las 01:37

2 cosas:

  • establezca score como string.
  • te falta el elemento value.
  ...
  function testScore(){
    var testScore = document.getElementById("score").value;
    ...

Nota: si el puntaje es una variable global con el valor de "puntaje", ignore lo primero.

0
hiral2 31 oct. 2019 a las 01:35
58635752