#javascript #multiplication
#javascript #умножение
Вопрос:
Редактировать: решение: http://jsfiddle.net/VnXtP /
Зачем выполнять эту работу? http://jsfiddle.net/uc7kT /
<input type="text" name="item_quantity" id="item_quantity" value="1" />
<input type="text" name="item_price" id="item_price" value="24998" hidden="hidden" />
$('#item_quantity').change(function() {
var quantity = $('#item_quantity').val();
var price = $('#item_price').val();
var total = quantity * price;
alert(total.length);
});
Ответ №1:
Длина определяется для строк, а не чисел. Если вы хотите сделать это как математическую операцию, вы должны сначала преобразовать входные строки в числа. Если вам действительно нужна длина числовой строки (я не знаю, зачем вам это нужно), вам нужно сначала преобразовать число в строку:
$('#item_quantity').change(function() {
var quantity = parseInt($('#item_quantity').val(), 10);
var price = parseFloat($('#item_price').val());
var total = quantity * price;
alert(total.toString().length);
});
Комментарии:
1. Это была toString() (я уже узнал о parseInt), которая решила проблему: alert(total.toString().length); Спасибо!
Ответ №2:
Использовать:
alert(total);
Вместо:
alert(total.length);
Вы также можете рассмотреть возможность преобразования входных значений в значение с плавающей точкой или целое число перед выполнением математических вычислений.
Ответ №3:
итого — это число. У него нет свойства «длина».
Попробуйте
alert(total);
Я думаю, это то, что вы хотите.
Ответ №4:
В javascript число — это число, а строка — это строка.
Что иногда может сбивать с толку, так это то, что число может автоматически превращаться в строку, когда это необходимо (например, добавление к нему строки).
Числа не имеют length
свойства, вместо этого есть строки. Также в javascript, когда вы запрашиваете у объекта свойство, которого обычно нет, вы просто получаете undefined
значение.
Ответ №5:
var quantity = $('#item_quantity').val();
var price = $('#item_price').val();
item_quantity
и item_price
являются текстовыми вводами, и вам нужно изменить его на целое число перед умножением. для этого используйте parseInt() .
var quantity = parseInt($('#item_quantity').val(),10);
var price = parseInt($('#item_price').val(),10);
и использовать alert(total);
не alert(total.length);