2013-09-03 2 views
-6

Я пытаюсь создать простую функцию для таблицы, которой мне поручено создавать. Я хочу, чтобы пользователь вводил число в первое поле ввода и умножал его на 30, и показывал результат во втором поле ввода, с помощью keyup или onChange.javascript multiply input by number

Вот что я до сих пор, пожалуйста, имейте в виду, что я очень новичок в этом.

<table> 
    <tr> 
     <td>Costs</td> 
     <td>$ 
      <input type="text" id="daily"> 
     </td> 
     <td>$ 
      <input type="text" id="result"> 
     </td> 
    </tr> 
</table> 

<script> 
$(function() { 
    $('#daily').keyup(function() { 
     var daily = $('#daily').val(); 
     var month = 30; 
     $('#result').val(daily * month); 
    }); 
}); 
</script> 
+1

В чём проблема? Потому что, когда я вхожу в «1», результат говорит «30» и «12» -> «360». http://jsfiddle.net/xmGH4/, отлично работает здесь (на FF) – Martijn

+4

Итак, в чем вопрос? Это работает? Не работа? Что вы от нас хотите? –

+3

http://jsfiddle.net/5Br92/ это работает для меня ... – Sergio

ответ

-1
$(function() { 
    $('#daily').on('keyup', function(){ 
    var daily = parseInt($('#daily').val()); 
    var month = 30; 
    $('#result').val(daily * month); 
    }); 
}); 

Я пытался использовать «.На» связывания вместо непосредственного использования «.keyup» потому что это может предотвратить ошибки, если эта таблица является результатом ajax call

+3

'parseInt' здесь не проблема. При выполнении '*' есть неявное приведение. –

+0

Вы заметили привязку «.on (« keyup ») вместо« .keyup »? Если это не сработает, это должна быть некоторая внешняя ошибка. код отлично работает на jsFiddle –

-1

Вы должны объявить

var daily = parseInt($('#daily').val()); 
+3

При использовании '*' есть неявный притвор. –

+2

И, как будет показано в разных сценах, он работает на этом этапе. Если вы хотите разобраться, вы должны использовать 'parseInt ('123', 10)', обратите внимание на 10 для десятичной системы :) – Martijn