2017-02-17 7 views
1

У меня есть оператор switch, чтобы дать вам знак письма, если вы вводите знак количества. Я не получаю никаких ошибок от хром, поэтому я не знаю, что я делаю неправильно. Я бы просто форматировал его неправильно?Почему мой переключатель не работает?

<html> 
    <body> 
<h1>Rank Your Mark!!</h1> 
Enter your mark to rank it. 

<input type="number" name="grade" id="mark"> 
<input type="button" name="mark" id="grade" value="Rate" onclick="rateMark()"> 

     <script> 
function rateMark(){ 
    switch(grade) 
    { 
    case"F": 
     mark > 50; 
     break; 

    case"D": 
     mark >= 50 && mark <=59.9; 
     break; 

    case"C": 
     mark >= 60 && mark <=69.9; 
     break; 

    case"B": 
     mark >= 70 && mark <= 79.9; 
     break; 

    case"A": 
     mark >= 80 && mark <= 89.9; 
     break; 

    case"A+": 
     mark >= 90 && mark <= 100; 
     break; 
    } 
    document.getElementById("demo").innerHTML = "You got a" + mark; 
} 
    </script> 
    <br> 
<p id="demo"></p> 
    </body> 
    </html> 
+4

'switch' не работает, как это; вам нужна цепочка 'if' /' else if'. – Ryan

+0

@Blakethepatton вы знаете, что я делаю неправильно, так как он показывает объект HTMLInputElement, а не букву? –

+0

@Blakethepatton: Ну, я изначально предполагал, что «класс» был номером, и класс должен был быть выпуском, но я полагаю, что возможно, что они хотят «У вас есть> = 60 && <= 69,9»? Трудно сказать. – Ryan

ответ

2

Вы не используете правильный путь, проверить, как это работает here.

Что вы делаете, если сравнить класса переменная «F», «D», «C». ....

Использование if и else if и положить ваши заявления в них, как это:

var mark = document.getElementById('mark').value // gets the input value to "mark" variable 
if(mark >= 70 && mark <= 79.9){ 
    // do something here 
} else if(mark >= 80 && mark <= 89.9){ 
    // do another thing here 
} 

так на ...

+1

За исключением этого еще неверно. Вам нужно использовать 'mark.value', если вы хотите фактически получить значение ввода. –

+1

Да, но он даже не получил значение ввода. Я просто хотел показать ему, как использовать утверждения, предполагающие, что его значение будет на переменной метки –

+0

@KyleMartin с использованием 'mark.value' не будет устранять проблему, так как OP не хватает выражения типа var var = document.getElementById ("метка"); '. 'var mark = document.getElementById (" mark "). value;' в любом случае является чистым –

0

Смотреть это:

<body> 
 
<h1>Rank Your Mark!!</h1> 
 
Enter your mark to rank it. 
 

 
<input type="number" name="grade" id="mark"> 
 
<input type="button" name="mark" id="grade" value="Rate" onclick="rateMark()"> 
 

 
     <script> 
 
     function rateMark(){ 
 
    \t mark = document.getElementById("mark").value 
 
     if (mark < 50) { 
 
     \t mark = "F" 
 
     } else if (mark >= 50 && mark <=59.9) { 
 
     \t mark = "E" 
 
     } else if (mark >= 60 && mark <=69.9) { 
 
     \t mark = "D" 
 
    \t } else if (mark >= 70 && mark <= 79.9) { 
 
     \t mark = "C" 
 
     } else if (mark >= 80 && mark <= 89.9) { 
 
      mark = "B" 
 
     } else if (mark >= 90 && mark <= 100) { 
 
     \t mark = "A" 
 
     } 
 
     document.getElementById("demo").innerHTML = "You got a " + mark; 
 
     } 
 
    </script> 
 
    <br> 
 
<p id="demo"></p> 
 
    </body>