2013-12-11 4 views
0

Я пытаюсь простую вещь, я получаю данные из текстового поля, но это не дает мне правильного значения?Неверное значение из текстового поля

function cal() { 

    var a; 
    var b; 
    var c; 


    // document.getElementById("cals").innerHTML=btn; 
    a = document.getElementById("txta").value; 
    b = document.getElementById("txtb").value; 
    c = document.getElementById("txtc").value; 


    if (a.valueOf() > b.valueOf()) { 
     if (a.valueOf() > c.valueOf()) { 
      document.write("A is grater"); 
     } else { 
      document.write("c is grater"); 
     } 
    } else { 
     if (b.valueOf() > c.valueOf()) { 
      document.write("B is grater"); 
     } else { 
      document.write("c is grater"); 
     } 
    } 

} 
+1

Где вы не получите правильное значение? У вас есть значение a, b, c? –

+0

Это цифры? или что такое a/b/c? –

+0

его работа абсолютно здесь http://jsfiddle.net/qq2P5/1/ – anand4tech

ответ

0

попробовать это вместо того, чтобы, если ИНТ номер с помощью ParseInt:

  if (parseInt(a, 10)>parseInt(b, 10)) 
      {  
       if (parseInt(a, 10)>parseInt(c, 10)) 
       { 
        document.write("A is grater"); 
       } 
       else 
       { 
        document.write("c is grater"); 
       } 
      } 
      else 
      { 
       if(parseInt(b, 10)>parseInt(c, 10)) 
       { 
        document.write("B is grater"); 
       }else 
       { 
        document.write("c is grater"); 
       } 
      } 
+6

Не используйте 'parseInt' без основания. – Quentin

+0

Да, я исправил, использование radix является обязательным для parseInt, чтобы получить правильное значение и не иметь странной проблемы, спасибо @Quentin –

+1

Почему бы не разобрать значение текстового поля при объявлении «b» (b = parseInt (document.getElementById ("txtb ") .value, 10)) вместо разбора" b "до int несколько раз? То же самое касается «a» и «c» ofcourse – Jop

0
function cal() { 
    var a,b,c, text; 

    a = parseInt(document.getElementById("txta").value,10); 
    b = parseInt(document.getElementById("txtb").value,10); 
    c = parseInt(document.getElementById("txtc").value,10); 

    if (a > b && a > c) text = "A is grater" 
    else if (b > c) text = "B is grater" 
    else text = "C is grater" 

    document.write(text); 
} 
Смежные вопросы